76
IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING ARCMAP GIS SOFTWARE AND THE PERSONAL GEODATABASE A THESIS PRESENTED TO THE DEPARTMENT OF GEOLOGY AND GEOGRAPHY IN CANDIDACY FOR THE DEGREE OF MASTER OF SCIENCE By ROBERT BRUNDAGE NORTHWEST MISSOURI STATE UNIVERSITY MARYVILLE, MISSOURI NOVEMBER 2006

IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING ARCMAP GIS SOFTWARE AND THE PERSONAL GEODATABASE

A THESIS PRESENTED TO THE DEPARTMENT OF GEOLOGY AND GEOGRAPHY

IN CANDIDACY FOR THE DEGREE OF MASTER OF SCIENCE

By ROBERT BRUNDAGE

NORTHWEST MISSOURI STATE UNIVERSITY MARYVILLE, MISSOURI

NOVEMBER 2006

Page 2: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

IMPLEMENTING AN ARCHIVAL GIS TEMPLATE

IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING ARCMAP GIS

SOFTWARE AND THE PERSONAL GEODATABASE

ROBERT BRUNDAGE

Northwest Missouri State University

THESIS APPROVED

Thesis Advisor Date

Dean of Graduate School Date

Page 3: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

iii

IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING ARCMAP GIS

SOFTWARE AND THE PERSONAL GEODATABASE

Abstract

Despite research and literature about temporal GIS (Geographic

Information Systems), there is little actual application. Traditionally, the quantity

and value of temporal queries made on a GIS have not justified the excessive

time and effort required to maintain temporal attributes. Thus, the temporality of

many a GIS has been ignored. The recent maturation of GIS software, of GIS

databases, and of computer operating systems has dramatically reduced the

once onerous overhead of managing a temporal GIS.

The research objective for this thesis is to develop a generic temporal

template for geo-objects using available commercial GIS software and apply it to

facility management for Fort Campbell Army Base. The archiving methods use

the extensibility of the ESRI ArcGIS suite of software and the personal

geodatabase to create a ‘supersede-not-delete’ editing environment which

establishes a geo-object archival record. A database schema has been

developed that involves a series of attributes that are established and maintained

through automated methods within the personal geodatabase feature class.

These attributes manage archival information. The geo-object archiving template

(tGIS Extension) was developed to support Fort Campbell Army Base use of GIS

in managing facilities and infrastructure.

Page 4: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

iv

Table of Contents Abstract ................................................................................................................ iii

Table of Contents .................................................................................................iv

List of Figures.......................................................................................................vi

List of Tables .......................................................................................................vii

1 Introduction........................................................................................................ 1

2 Literature Review............................................................................................... 5

2.1 Development of Temporal Concepts ........................................................... 5

2.2 Applied Temporal Concepts ........................................................................ 7

2.3 Conclusion................................................................................................. 12

3 Framework and Methodology ......................................................................... 13

3.1 Archival Database Schema ....................................................................... 14

3.2 Database Implementation ......................................................................... 20

3.3 Database Display...................................................................................... 28

3.4 Database Query........................................................................................ 30

3.5 Fort Campbell GIS Datasets and the tGIS Extension ................................ 31

4 Results and Discussion ................................................................................... 35

4.1 Database Schema Attributes .................................................................... 35

4.2 Analysis of Implementation ....................................................................... 35

4.3 Analysis of Display.................................................................................... 46

Page 5: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

v

4.4 Analysis of Query...................................................................................... 51

4.5 Summary................................................................................................... 55

5 Conclusion....................................................................................................... 58

Appendix A: Code implementing ‘Supersede-not-delete’ ................................... 62

References ......................................................................................................... 67

Page 6: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

vi

List of Figures Figure 1: Location: Fort Campbell Army Base................................................... 31

Figure 2: Training Area and Cantonment Area.................................................. 32

Figure 3: Nine Attributes that Make Up the Database Schema ......................... 35

Figure 4: Geo-object has been Created ............................................................ 36

Figure 5: Geo-object has been Deleted.............................................................. 37

Figure 6: Geo-object has been Moved ............................................................... 38

Figure 7: Geo-object’s Shape has been Modified.............................................. 39

Figure 8: Geo-object has been Reshaped......................................................... 40

Figure 9: Geo-object has been Split into Two Geo-objects ............................... 41

Figure 10: Geo-object has been Created by Auto-Complete Polygon ............... 42

Figure 11: Two Geo-objects have been Merged into One Geo-object............... 43

Figure 12: Layer Files Used to Access GIS Data ............................................... 47

Figure 13: Geodatabase Stored at Separate Location to Control Rendering ..... 48

Figure 14: User Display of Archival Data Controlled by Layer File ..................... 49

Figure 15: Display showing Archived Geo-objects ............................................. 50

Figure 16: Temporal GIS Toolbar and Query Tool ............................................. 51

Figure 17: Archival Layers are showing the ‘Active’ Geo-objects ....................... 52

Figure 18: Display with Definition Query set to Date .......................................... 53

Page 7: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

vii

List of Tables Table 1: Effect on Geo-object Archiving on Buildings Feature Class................. 56

Page 8: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

1

1 Introduction

As GIS manager for a military installation, it is not uncommon for the

author to be asked to “look back in time” using the installation GIS to answer

current questions. In the Army installation master planning process, before a site

can be selected for development its previous use must be reviewed for

environmental, archaeological and cultural concerns. The archival methods used

within the installation GIS did not provide timely or accurate answers to the

questions asked. Decisions to construct new infrastructure, tear down existing

infrastructure, rename street networks, and renumber addressing were not

properly documented nor archived for future reference. The dynamic nature of

changes occurring on the installation’s infrastructure demonstrated a need for

temporality within the GIS to track these changes. The placing of new

infrastructure and the proper management of existing infrastructure require this

historical information to be accessible and accurate within the GIS. For example,

it is not uncommon to question why there are abandoned utilities at certain

locations or to ask what existed in a specific area over a period of time. The

answer to these questions could be holding up current construction projects or

aiding environmental restoration. Federal and local regulations require tracking

of environmentally sensitive materials and the management of restoration

programs for areas where environmentally sensitive materials have been used

(Army Pamphlet 200-1 2002). An easily implemented and manageable archival

Page 9: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

2

GIS will increase the usefulness of the installation’s GIS and provide significantly

better infrastructure management to answer these historical queries.

The research objective for this thesis is to develop a generic temporal

template for geo-objects using available commercial GIS software and apply it to

facility management for Fort Campbell Army Base. Despite research and

literature about temporal GIS (Geographic Information System), there is very little

real employment (Freelan 2003). GIS industries, such as transportation,

emergency management, and location based services, address temporal GIS

issues within the context of those industries’ specific needs. There are a few

software extensions such as Environmental Systems Research Institute’s (ESRI)

Tracking Analyst and DHI Software’s ArcMap Temporal Analyst that are geared

toward specific temporal GIS data. There exist a few computer code libraries,

such as ‘Terrlib: an open source GIS library for spatial-temporal databases’, that

implement a temporal GIS structure but do not utilize mainstream GIS software

or data formats. Examples of applied temporal GIS usage are rare. ESRI’s

literature on its upcoming release of ArcGIS 9.2 (ESRI 2006b) promises

advancements in historic (archival) GIS, but until applied and tested, it cannot be

relied upon to solve basic problems of temporal GIS management.

The relative newness of digital spatial data, digital networks, computers

and GIS software has led to a focus on digital data creation, acquisition and

updating. Unless time was a specific element of the data which was captured,

such as with bus scheduling and GPS tracking, the filiations and/or life span of

the captured geo-objects have been of no concern. Traditionally, the number

Page 10: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

3

(and value) of temporal queries on a GIS has not been enough to justify the

amount of manual interaction required to maintain the temporal GIS. This

situation has resulted in the forgoing of temporality with many GIS geo-objects.

The recent maturation of GIS software, of GIS databases and of computer

operating systems has the capability to reduce the amount of manual editing that

has traditionally been required to maintain a temporal GIS.

Any GIS will have added value if said GIS can provide basic historical

data. The following are very useful, valid queries:

• Show me the database at time “A.”

• Show me how feature “Y” has changed through time.

• Show me what was in the space of feature “Z” at time “B.” (ESRI 2002)

This research addresses the development of an archival GIS template for

facilities and infrastructure on Fort Campbell Army Base. The template allows

archiving of geo-objects and the query and display of archived geo-objects. The

archival GIS template will utilize ESRI’s personal geodatabase storage model,

ESRI’s ArcMap GIS software and ESRI’s ArcObjects programming classes. The

template is called the ‘tGIS Extension’; it has been implemented upon Fort

Campbell Army Base’s building and street network infrastructure. The template

uses personal geodatabase extensibility capabilities to create an editing

environment that archives geo-objects when changes occur. To manage the

historic GIS a series of attributes are established and maintained through

automated methods within the feature class to allow tracking of when and why

Page 11: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

4

change has occurred. Display and query tools have been developed to allow

proper access, display and viewing of the historic geodatabase. The personal

geodatabase is limited by storage (2 gigabytes total/250 megabytes practical)

and access, with a single user write environment and Microsoft Jet Engine

limitations of concurrent read access. The methods and tools developed in this

thesis may transfer to the ESRI Arc Spatial Database Engine (ArcSDE/RDBMS*)

environment easily, but these systems for larger GIS management are not within

the scope of this research.

*Relational Database Management Systems

Page 12: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

5

2 Literature Review

In searching the Internet and ESRI’s ArcScripts website (ESRI 2006a), the

author could not find a generic implementation of a temporal GIS that did not

involve RDBMS database versioning techniques. A data model and case study

that utilized RDBMS and database versioning was found (ESRI 2004) but the

larger GIS requiring RDBMS is not within the scope of this thesis. An example

was found that time tagged existing geo-objects (Thoms 2005) but did not

archive geo-objects. The development of an archival GIS template for the non-

RDBMS GIS environment is the objective of this research. From the literature

review, the author has defined the concepts and terms that establish a database

schema and methodology to create an archival GIS template.

2.1 Development of Temporal Concepts

The need to include time along with spatial information was identified early

in the development of GIS. Berry (1964) defined geographic data as being

composed of times, places, and attributes. Sinton (1978) identified data as

consisting of location, time, and attribute. Depending on the type of data (i.e.

soils and census data), each element of data (location, time, and attribute) was

either held fixed, controlled, or measured such as with elevation data. The time

of collection would be fixed, the values of the elevation attribute would be

controlled to a range, and the location of the value would be measured.

Page 13: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

6

Basoglu and Morrison (1978) designed a structure to manage US county

boundaries. The structure allowed ‘snapshots’ of county boundaries as

requested by date. This ‘requested date’ type query is basic to temporal

information. Corson-Rikert (1987) presented methods for adding changed data

through graphic aids provided by the GIS and then adding these changes to

existing files. Calkins and Dickinson (1987) suggested that the complexity of

spatio-temporal data demands special tools for management and display.

Langran (1992) published a book addressing the concepts, problems and

issues with implementing spatio-temporal GIS. According to Freelan (2003),

“Langran’s work continues to provide not only the initial, but frequently the most

recent, word on many of the basic issues that arise with the attempt to add time

to a GIS.” Langran brought a somewhat new insight into temporal GIS. Langran

had practical experience dealing with a temporal GIS. ‘Notice to Mariners’ is a

system used to update nautical charts after they have been published. The

updated notices could consist of adding or subtracting information to a nautical

chart or could be a textural notice about an area. The notice is time and location

tagged. Langran was involved in the development of techniques to use GIS in

the ‘Notice to Mariners’ system and the automating of nautical charts. This

experience gave Langran a deeper insight into the problems of implementing

time within a GIS.

Earlier works on applied temporal GIS (Langran 1992, Halls and Miller

1996, Lester 1990) were influenced by technical issues (older GIS storage

formats that enforced topology) and the limitation of computer processing at the

Page 14: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

7

time when they were written. Even with the frenetic pace of technology

advancement, some of the more recent papers (Freelan 2003, Berman 2003)

were also somewhat limited in scope by the software and GIS storage at time of

publication. During the development of this research, ESRI announced a new

storage format that handles the archiving of geo-objects (ESRI 2006b). ESRI

has not published any details of the new storage format or any details about the

type of data archiving or how data archiving would be supported. Freelan (2003)

was aware that the advent of ESRI’s geodatabase would affect his research.

Likewise, the author is aware that ESRI has proposed changes to database

storage, but without technical documentation or possession of what is currently

promised, the author is proceeding with his research.

2.2 Applied Temporal Concepts This research examines temporal GIS as it applies to developing an

archival GIS template using ESRI’s ArcGIS environment. The resulting historic

GIS manages relatively static geo-objects within a military installation’s

infrastructure. A number of issues, technical and conceptual, must first be

addressed in order to implement this historic GIS.

When examining temporal geo-objects, there are two types: static geo-

objects and dynamic geo-objects (Nadi and Delavar 2003). Static geo-objects

are defined as “not varying” in location or over time. Examples of static geo-

objects are road features, utilities and similar in-situ infrastructure, and historical

cartographic maps and geophysical data such as elevation rasters. Static geo-

objects, though seemingly unchanging in location and attribute values, do

Page 15: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

8

experience change over time, just not at a rate experienced by dynamic geo-

objects. Static geo-objects have a basic relationship to time. There was a time

when the static geo-object did not exist, and then a time when the geo-object

came into existence. Dynamic geo-objects can vary spatially and in attribution

through time. Examples of dynamic geo-objects are traffic volumes, urban

expansion and GPS tracking. These geo-objects have an inherent time-

dependent notion and have received most of the attention in temporal GIS

applications. Though the majority of GIS data managed in community

infrastructure is temporally static in nature, the capability to query and display the

GIS data based on time will improve the usefulness of the GIS. The static geo-

objects are the focus of this thesis.

Temporal GIS research seems to have split time into two different camps,

conceptual time and applied time (Freelan 2003). The conceptual temporal

research is based upon time’s integration in the GIS using the object-oriented

database model (Raza 2001). The applied temporal GIS research uses current

relational database models, storing time as an attribute of the geo-object

(Freelan 2003). In the conceptual temporal model, time is the fourth dimension

within a GIS, changing the spatial component of the GIS to a spatio-temporal

component. An (X,Y,Z) spatial location becomes an (X,Y,Z,T) location in space

and time. Not only does a geo-object have a space and attribute filiation (change

history), but a location also has a filiation based on the range of time covered by

the temporal GIS database. The relatively new object-oriented database model

shows promise in being able to store a truly temporal GIS (Barrera, Frank, and

Page 16: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

9

Al-Taha 1991). The conceptual model is still moving toward applied practical

application (Raza 2001).

Current relational database storage used in the majority of GIS software

does not support the time-as-dimension concept (Freelan 2003, and Raza 2001).

In the relational database structure, time is included as an attribute or series of

attributes that is queried as any other attribute. The capability to perform a

spatial dimension function such as ‘nearest neighbor’ (where a start location is

defined and searched as if a pebble were dropped in a pond, with the nearest

neighbor found by the expanding ripple) cannot be duplicated using time. When

time is an attribute of the geo-object, all geo-objects must be queried and time

attribute values compared. Freelan (2003) defines the relational database time

model as a ‘quasi-temporal GIS’ model due to the lack of true time integration

within the GIS. This thesis is concerned with the practical application of quasi-

temporal GIS using the current relational database storage schema with time

stored as attributes of the geo-object instead of as an inherent dimension of a

temporal-geo-object.

There are two types of time to consider in a practical application quasi-

temporal GIS: linear time and cyclical time (Worboys 1990). Linear time can be

more easily understood when viewed as if one were viewing a time line. Time

has a past and present, as seen on the time line. Cyclical time can be defined as

repeating-events based time. Seasons of the year, bus schedules, and rain

events are examples of cyclical time. Because the majority of data in a

Page 17: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

10

community infrastructure GIS is relatively static and non-cyclical, this thesis is

concerned with the storage and use of linear time within its GIS template.

In previous research (Freelan 2003), there have been four base methods

of quantifying time within a GIS. The “Snapshot” method archives the GIS

database at time intervals or time events. All geo-objects within the GIS are

archived, whether a change occurred to the geo-object or not. This method is

data redundant and storage intensive. Querying, analysis and displaying of the

snapshot model of archived databases can be cumbersome, due to the

exponentially multiplying size of information.

The “Time Cube” method stores a time series (series of snapshots) that

adds the capability of location “‘drill down”’ of stored database layers. The ability

to “drill down” (through time) at a location to get changes is valid but this method

has the same inherent problems of the Snapshot method (the redundant storage

of information).

The “Base State with Amendments” method uses a dated baseline

database. Time-tagged changes that occur to the baseline database are

recorded. A database state for a specified time can be retrieved by applying the

recorded changes to the baseline database until the state of the database at the

queried time is achieved. This method is called “versioning” within the relational

database management system (RDBMS) industry. ESRI has a published paper

(ESRI 2002) that details the use of this method with accompanying scripts to use

within an RDBMS. This method is also cumbersome, requiring reconstruction

from baseline databases to get to the time of interest.

Page 18: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

11

The “Space-Time Composite” model stores spatio-temporal topological

geo-objects in one database. No geo-object is ever deleted or removed. When

a geo-object has a change event, the geo-object is superseded by a new geo-

object. Geo-object attributes that are tagged with the time of the change allow

query and display. Though storage is not optimized due to the “supersede-not-

delete” (Kucera, Kucera and Ressler 2006) approach, modern computer

resources and storage should allow handling of small to mid-sized static geo-

object GIS databases. The current non-topological GIS formats, such as

shapefiles and geodatabases, allow the concept of space-time composite model

to function without the overhead of topology management (Freelan 2003).

Langran (1992) concluded that the space-time composite model has greatest

potential for success in current GIS technology environments. This research

takes advantage of the supersede-not-delete concept of the space-time

composite model.

In a quasi-temporal GIS where time is stored in geo-object attributes,

there are three time states to consider: world time, database time, and

institutional time (Lester 1990). World time is defined as the time that the geo-

object or event occurred. Database time is defined as the time the geo-

object/event is recorded in the database. Institutional time is dimensions of time

for an entity that has a relation to the geo-object, such as inception of the plan for

the geo-object, partial completion of the geo-object, and abandonment of the

geo-object (Lester 1990). World time and database time are implemented in the

archival GIS template. Database time is handled in an automated fashion, as

Page 19: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

12

explained in Chapter 3. World time, if considered to be different than database

time, must be manually entered into the database.

2.3 Conclusion In summation, this thesis addresses the construction of an archival GIS

template for the archiving of geo-objects. This template will use a quasi-temporal

supersede-not-delete database model to track static geo-objects using database

time and elements of world time using the linear time definition.

Page 20: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

13

3 Framework and Methodology

This research addresses the construction of software tools that allow the

creation and implementation of a historic (archival) GIS. The historic GIS is

implemented through the ESRI personal geodatabase storage format and ESRI

ArcMap software environment. The archival GIS tools are collectively called

“tGIS Extension.” As defined by the research literature, the tGIS Extension uses

a quasi-temporal supersede-not-delete database model to track static geo-

objects using database time and elements of world time which uses linear time

definition. There are four components that make up the tGIS Extension:

1. Archival Database Schema – The attributes created to manage

temporal changes were developed from the literature research.

2. Database Implementation – The ideas and concepts of the

“supersede-not-delete” environment were taken from the literature

research. The tools created to implement and manage the

“supersede-not-delete” temporal environment were developed with

ESRIs ArcObject classes. Programming usage examples were taken

from “Developer Sample” tools distributed with ESRI ArcMap software.

3. Database Display - The method to control display of archival GIS data

is within existing capabilities of ESRI’s ArcMap.

Page 21: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

14

4. Database Query – ESRI’s ArcObjects classes and Microsoft Visual

Basic 6.0 were used to create a toolbar and tool to query the archived

GIS data within ArcMap.

3.1 Archival Database Schema

The initial idea for the archival geodatabase schema was taken from an

article written by Mr. Al Butler (GeoWorld 2005) and entitled “Metadata

Freedom.” The topic of Butler’s article is that of freeing GIS data managers from

the laborious task of maintaining metadata. Butler asserted that the cost of data

exchange is greater than the cost of data duplication and that the benefit to the

data sharer is minimal. The author proposes maintaining feature level metadata.

An indirect benefit of his idea is, at least partially, temporally enabling the dataset

on the geo-object (feature) level. Butler proposed adding seven attributes to

each GIS layer to allow feature level metadata. These attributes temporally

enable the geo-object. The initial schema proposed by Butler was expanded by

two additional attributes. Some attribute names were modified to better track

geo-objects in a supersede-not-delete environment. The archival attributes,

when combined with the expanded geodatabase functionality of the tGIS

Extension, automatically keep a historical record of the creation, modification,

and retirement of geo-objects.

1. [TemporalID] - This attribute, of type TEXT(20), was defined by Butler as a

way to uniquely track geo-objects by the original public key and

recordDate. The development of this attribute is beyond the scope of this

research but has been left in place for future development. The use of this

Page 22: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

15

type attribute is defined (Berman 2003, ESRI, 2002, Crissman and

Berman 2001, and Freelan, 2003) as how the database tracks geo-object

filiation (see discussion below) to implement spatio-temporal tracking of

geo-objects.

2. [recordDate] – This attribute, of type DATE, records the date/time when

the record was created in the database (database time). This attribute is

automatically populated by the tGIS Extension.

3. [Status] – This attribute, of type TEXT(20), records the geo-object’s state

of current existence in world time. The values that are automatically

assigned by the tGIS Extension are: ‘Active’, ‘Retired’ and ‘Deleted’. The

value of ‘Active’ represents that this geo-object currently exists as defined

by the geo-object shape and attributes. The value of ‘Retired’ represents

that this geo-object has been superseded by another geo-object, either by

change in shape or change in attribute value. The value of ‘Deleted’

represents the last state of this geo-object before it was removed from

existence, such as with a building that has finally been demolished. The

[Status] attribute can contain other values such as ‘Planned’, to indicate

future states, or ‘Replaced’, to indicate human error corrections. The only

[Status] values that are populated automatically are ‘Active’, ‘Retired’, and

‘Deleted’. The automated values can be changed for a period of time after

geo-object creation without firing new tGIS Extension recording events.

4. [createdDate] – This attribute, of type DATE, records the date/time

reflecting the beginning of existence of the geo-object. It automatically

Page 23: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

16

gets assigned the current date and time by the tGIS Extension (such as

with the [recordDate]). It is recognized that the actual geo-object creation

date may not match the [recordDate]. The automated values can be

changed for a period of time after geo-object creation without firing new

tGIS Extension recording events.

5. [retiredDate] – This attribute, of type DATE, records the date/time

reflecting the end of [Status] =‘Active’ existence of the geo-object. This

attribute automatically gets assigned the current date and time by the tGIS

Extension. It has been recognized that the actual geo-object [Status]

=‘Retired’/’Deleted’ date may not match the [recordDate]. The automated

values can be changed for a period of time after geo-object creation

without firing new tGIS Extension recording events.

6. [createdBy] – This attribute, of type TEXT(30), records the Username of

the logged-in user who is editing the created geo-object and is populated

by the tGIS Extension.

7. [retiredBy] - This attribute, of type TEXT(30), records the Username of the

logged-in user who is editing the geo-object and is populated by the tGIS

Extension.

8. [createdReason] – This attribute, of type TEXT(30), records the type of

edit performed that created the geo-object. This attribute is populated by

the tGIS Extension. The number of GIS functions that can

create/modify/delete geo-objects is quite numerous. Not all GIS functions

have been tested for correct reporting of edit type within the tGIS

Page 24: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

17

Extension. The type of edits tested for correct recording are the ‘Edit

Tasks’ and ‘Edit Commands’ found on the ‘Editor Toolbar’. The ‘Edit

Tasks’ are defined as editing events which require the use of an edit

sketch. The edit sketch is an object into which a feature is copied while

editing is performed. The sketch object is then submitted back into the

feature when editing is complete. The editing tasks are in four groups:

a. Create Tasks

i. Create New Feature

b. Modify Tasks

i. Reshape Feature

ii. Cut Polygon Feature

iii. Mirror Features

iv. Extend/Trim Features

v. Modify Feature

vi. Calibrate Route Feature

vii. Modify Portion of a Line

c. Topology Tasks

i. Modify Edge

ii. Reshape Edge

iii. Auto-Complete Polygon

d. Other Tasks

i. Create two-point Line Features

Page 25: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

18

Edit commands are defined as events that work on a selected set of

features. The edit commands accessed from the Editor Toolbar are:

a. Move…

b. Split…

c. Divide…

d. Buffer…

e. Copy Parallel…

f. Merge…

g. Union…

h. Intersect…

i. Clip…

The [createdReason] values can be changed for a period of time after

geo-object creation without triggering new tGIS Extension recording

events.

9. [retiredReason] - This attribute of type TEXT(30), records the type of edit

performed that ‘Retired/Deleted’ the geo-object. This attribute is

populated by the tGIS Extension. The number of GIS functions that can

create/modify/delete geo-objects is quite numerous. Not all GIS functions

have been tested for correct reporting of edit type. The type of edits

tested for correct recording are the ‘Edit Tasks’ and ‘Edit Commands’

found on the ‘Editor Toolbar’. The [retiredReason] values can be changed

for a period of time after geo-object creation without triggering new tGIS

Extension recording events.

Page 26: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

19

The database schema establishes attributes to record archival information

of geo-objects within a GIS. A method to track the lineage of the geo-objects has

not been established (Freelan 2003). An example of this would be the merging

of polygons to form one polygon. The polygons merged would be ‘Retired’ with

the date ([retiredDate]), who merged the polygons ([retiredBy]), and the type of

edit used for the merge ([retiredReason]), but the polygon into which they were

merged is not recorded for each ‘Retired’ polygon. The newly created polygon

(results of said merge) has the recorded date ([createdDate]), the type of edit

used for the merge ([createdReason]), and who merged the polygons

([createBy]), but the source polygons for the merge are not recorded. This

lineage is lost. Note that the polygons ‘Retired’ have a one-to-one relationship

with the resultant new polygon. This one-to-one change could be captured in a

field that then could be used for lineage tracking. The resultant new polygon has

a one-to-many relationship with the ‘Retired’ polygons. The problem not

addressed in this research is how to capture this one-to-many relationship in the

database schema.

Though not complete in its coverage of all temporal facets of geo-objects, the

database schema allows recording of geo-object state, when the state change

occurred, for what reason the change occurred and who made the change. The

above process, combined with the archiving of the geo-object, allows a history of

the geo-object to be maintained.

Page 27: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

20

3.2 Database Implementation

To implement an archival method of storing changed and deleted geo-

objects within the personal geodatabase, the functionality of how the personal

geodatabase handles changes to geo-objects has been modified. The

maturation of the GIS data storage (personal geodatabase), specifically the

ability to extend the personal geodatabase functionality, allowed the capability to

create a supersede-not-delete geo-object environment along with automatic

attribute value updating. The tool developed to extend the personal

geodatabase functionality is the ‘tGIS Extension’. This class extension is a

dynamic linked library (DLL), which is referenced within the personal

geodatabase structure, thus tying archival management to the data.

The geodatabase is a Microsoft Access file made up of tables that define

the personal geodatabase. In the GDB_ObjectClasses table within the personal

geodatabase, each feature class is listed as a record. One of the fields in this

table is called [EXTCLSID] (Extension Class ID). This field can contain a

reference to a DLL that extends the functionality of the personal geodatabase

feature class. The extended functionality of the tGIS Extension DLL adds

archival management to the geo-object through feature editing events of

OnCreate, OnChange and OnDelete.

The tGIS Extension implements five classes to support archival

management of geo-objects within a feature class.

Page 28: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

21

1. tGIS_OCDescription – Implements the ArcObjects

IObjectClassDescription interface to provide information to ArcCatalog

which allows the creation of custom objects. This adds selection

capability of a new custom object type within the ‘New Table’ creation

process.

2. tGIS_FCDescription – Implements the ArcObjects

IObjectClassDescription interface and the IFeatureClassDescription

interface (provides information to ArcCatalog which allows creation of

custom objects.) This adds selection capability of a new custom

feature class object type within the ‘New Feature Class’ creation

process. This class allows creation of a feature class that is

implemented with the archival attributes and supersede-not-delete

processing of the feature class’s geo-objects. This class supports the

ArcCatalog process of creating a new feature class.

3. tGIS_PropPage – Implements the ArcObjects IComPropertyPage

interface to provide ArcCatalog the ability to change the defined

archival attributes of an existing feature class.

4. tGIS_myFilter – Implements the ArcObjects ICustomizationFilter

interface to provide the ability to capture ArcMaps ‘Editor Toolbar’

editing commands for use in the archiving of [createdReason] and

[retiredReason] attributes.

5. tGIS_ClassExtension – This class is the workhorse of the tGIS

Extension. This class implements the ArcObjects IClassExtension

Page 29: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

22

interface which is triggered and initializes the tGIS attributes for use

when the geodatabase feature class is loaded into ArcMap. This class

implements the IObjectClassExtension interface which allows the

geodatabase extension to acquire the ArcMap editing session and

retrieve archival attributes from a geo-object within the feature class.

This class implements the ArcObjects IObjectClassInfo2 interface

which allows geodatabase feature class edits to make edits (such as

attribute edits) outside of an ArcMap edit session. This class

implements the custom ItGIS_ClassExtension interface which allows

an interface to the archival attributes. This class implements the

ArcObjects IObjectClassEvents interface which allows the capture of

edits to the geodatabase feature class. The events implemented

within the interface are OnCreate, OnChange and OnDelete. These

events are used by the tGIS Extension to manage the archival

supersede-not-delete environment.

A GIS user who wishes to create a historic GIS installs the tGIS Extension

by registering the tGIS_PGDB.DLL on their computer. The GIS user then runs

the tGIS_PGDB.REG registration script to register the classes contained in the

tGIS_PGDB.DLL in their respective ArcGIS component categories. The GIS

user then can start ArcCatalog and create a new feature class. During the

feature class creation process, if the GIS user wishes to use the custom object

‘temporal Feature Class’, he/she can choose to do so. The feature class created

Page 30: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

23

will contain the archival attributes and the functionality to manage supersede-not-

delete geo-objects. When the new feature class is loaded into ArcMap, the tGIS

Extension will be activated. Any edits done to the feature class will trigger the

editing events within the tGIS Extension.

As stated above, the tGIS Extension implements the ArcObjects

IObjectClassEvents interface. This class captures three types of editing events

(OnCreate, OnChange and OnDelete), passing the geo-object that has been

edited to the event. Within each event the author has added computer code to

create the supersede-not-delete geo-object environment. An initial problem in

the use of the IObjectClassEvents interface was that the geo-object passed to

the three events was the geo-object after it had been edited. For archival

purposes, the geo-object state before edits was needed.

In managing an archival GIS we are concerned with the pre-edit state of

the geo-object in order to archive that state. Two ArcObject classes allow us to

retrieve the state of the geo-object before the edit occurred. The IRowChanges

interface allows us to capture attribute changes to a geo-object. The

IFeatureChanges interface allows us to capture shape changes to a geo-object.

Without these two interfaces the archival GIS would not have been possible

within the Geodatabase Object Class.

The following text discusses the three editing events (OnDelete, OnChange

and OnCreate) where programming code has been added to support a

‘supersede-not-delete’ archival GIS.

Page 31: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

24

1. OnDelete (see code Appendix A) – This event is triggered when an

existing geo-object has been marked for removal from the feature class.

The geo-object marked for deletion is passed to the OnDelete subroutine.

Since we are operating in a supersede-not-delete environment, the geo-

object to be deleted is copied into a new geo-object. The geo-object

marked for deletion is deleted. The copied geo-object’s [Status] attribute

value is set to ‘Deleted’. The copied geo-object is added back into the

feature class. This triggers the OnCreate event. The OnCreate event is

passed the copied geo-object. The [Status] attribute value is checked on

each geo-object passed to the OnCreate event. If the [Status] attribute

value is ‘Deleted’ then the archival attributes are set as follows:

[recordDate] = current date and time

[retiredDate] = current date and time

[retiredBy] = UserName

[retiredReason] = Captured edit type from Editor Toolbar

The delete edit is now complete with an archived geo-object in the feature

class.

2. OnCreate (see code Appendix A) – This event is triggered when a geo-

object is added to the feature class. As demonstrated when the OnDelete

event triggers the OnCreate event, the OnCreate event does not

necessarily mean a brand new geo-object, but can mean the archiving of

a ‘Retired’ or ‘Deleted’ geo-object. When the OnCreate event is

Page 32: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

25

triggered, the geo-object that is being added to the feature class is passed

to the OnCreate event. The [Status] attribute value is then checked to see

if this new geo-object is being created from an OnDelete event ([Status] =

‘Deleted’) or an OnChange event ([Status] = ‘Retired’) or if it is actually a

brand new geo-object ([Status] = ‘’). If the geo-object is coming from the

OnDelete event, then the changes are as indicated in the OnDelete event.

If the geo-object is coming from an OnChange event, the attribute

changes are handled by the OnChange event, and the OnCreate event

adds the geo-object back into the feature class for archiving. If this is a

brand new geo-object then the archival attributes are set as follows:

[recordDate] = current date and time

[Status] = ‘Active’

[createdDate] = current date and time

[createdBy] = UserName

[createdReason] = Captured edit type from Editor Toolbar

The create edit is now complete with a new geo-object added to the

feature class.

3. OnChange (see code Appendix A) – This event is triggered either by an

attribute value change or a shape change of an existing geo-object.

A. Geometric Change

If the change is a shape change, then the original shape before the

change can be captured from the IFeatureChanges interface. A new geo-

Page 33: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

26

object is created and assigned the original shape and attributes of the

changed geo-object. The new geo-object is the geo-object to be archived.

Its archival attributes are set as follows:

[Status] = ‘Retired’

[retiredDate] = current date and time

[retiredReason] = Captured edit type from Editor Toolbar

[retiredBy] = UserName

The new geo-object for archiving is then added to the feature class. This

triggers the OnCreate event, which recognizes the [Status] attribute value

of ‘Retired.’

The archived geo-object is passed to the feature class.

The geo-object with the changed shape has its archival attributes set to:

[recordDate] = current date and time

[Status] = ‘Active’

[createdDate] = current date and time

[createdBy] = UserName

[createdReason] = Captured edit type from Editor Toolbar

[retiredBy] = ‘’

[retiredReason] = ‘’

Page 34: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

27

The ‘shape change’ edit is now complete with an archived geo-object in

the feature class.

B. Attribute Value Change

If the change is an attribute value change, then the original attribute

value can be retrieved form the IRowChanges interface. A new geo-

object is created and assigned the shape and attribute values before the

attribute value change. The new geo-object is the geo-object to be

archived. Its archival attributes are set as follows:

[Status] = ‘Retired’

[retiredDate] = current date and time

[retiredReason] = Name of attribute that had value change

[retiredBy] = UserName

The new geo-object for archiving is then added to the feature class. This

triggers the OnCreate event, which recognizes the [Status] attribute value

of ‘Retired.’

The geo-object with the changed attribute has its archival attributes set to:

[recordDate] = current date and time

[Status] = ‘Active’

[createdDate] = current date and time

[createdBy] = UserName

[createdReason] = Name of attribute that had value change

Page 35: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

28

[retiredBy] = ‘’

[retiredReason] = ‘’

The ‘attribute change’ edit is now complete with an archived geo-object in

the feature class.

Once implemented, the tGIS Extension records change by archiving any

geo-object that experiences a change. The complexity of the real world will force

some edits to be made outside of the tGIS Extension (automatic archival

recording). An example might be a mistyped attribute value assigned to many

geo-objects at the time of their creation. The necessity to archive the correction

to the many geo-objects may not be relevant to the GIS. With the tGIS

Extension implemented, there is no way to correct the attribute value without

duplicating the geo-objects of concern. Documentation accompanying the tGIS

Extension addresses how to disable the tGIS Extension when necessary.

3.3 Database Display

The purpose of a historic GIS is to archive the geo-object changes to the

GIS so that instances in time of the GIS can be revisited at a later date.

However, the majority of GIS usage is viewing and/or analyzing real-time GIS

‘Active’ geo-objects. Archived geo-objects should only be evident to GIS users

and data managers when the objects are queried. The capability to keep

archived geo-objects hidden and a method to query the archived geo-objects is

needed.

Page 36: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

29

From a data manager’s perspective, the rendering of GIS datasets to ease

the effort expended by GIS users is desirable. In the ArcMap environment, an

ArcMap data layer (.lyr) file is a way to store the rendering of a GIS data layer in

a separate location other than with or in the actual GIS data. The ability to do

this allows the data manager to control the loading of the GIS layer by the GIS

user. ArcMap data layers are utilized to allow loading of the archival GIS layers

without having to view or work with the archived geo-objects within the feature

class.

One of the properties of an ArcMap layer is its ‘Definition Query’. In a

definition query, the data user identifies specific features within a feature class to

display. The definition query uses Structured Query Language (SQL) type

queries made on the attributes of the data layer to define feature class geo-

objects of interest. The defined data definition is saved when the layer file is

saved. The layer file for each feature class within a geodatabase can be stored

in a location separate from the location of the personal geodatabase, as

mentioned above. This allows the control of the feature class geo-object’s

display and of the table record content of the archival data layers. The initial

definition query of a GIS data layer can be defined as [Status] = ‘Active’. When

the archival data layer is loaded into ArcMap, the only visible geo-objects

recognized in the map view and the table view are the geo-objects that meet the

query definition. This method keeps archived geo-objects transparent to the GIS

users and the GIS manager.

Page 37: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

30

3.4 Database Query

Though most of GIS usage satisfies the need for viewing and/or analyzing

real-time GIS ‘Active’ geo-objects, the point of having a historic GIS is to permit

query of archived geo-objects when historical answers or displays are needed.

The capability to query, in a user-friendly manner, the archived geo-objects

needs development. Temporal controls could control the date and state of geo-

objects that are displayed within an ArcMap session or they could control a

specific set of geo-objects within one feature class layer. The author developed

a toolbar using Microsoft’s Visual Basic 6 and ESRI’s ArcObjects to support

temporal GIS tools. One tool, the ‘Set Date’ tool, has been developed and

placed on this toolbar. The tool is designed to accept a date in a text box. The

date is then applied to all archival feature layers in the active DataFrame Table of

Contents. The date is applied by establishing a new query definition for the

archival feature layer ([createdDate] < #date# AND [retiredDate] IS null OR

[retiredDate] >#date#). For example, if the user typed into the ‘Set Date’ tool

textbox the date of ‘July 1, 2004’, the query definition retrieves geo-objects that

were created before July 1, 2004, and that have a retired date later than July 1,

2004. The geo-objects retrieved could be currently active or they could have

been retired or deleted after July 1, 2004. The date applied to the archival

feature layer is appended to the feature layer name so a constant reminder is

visible that a geo-object archival request has been made and that the results are

displayed in the feature layer. Clearing the date text box will re-set the definition

query for each archival feature layer back to viewing the non-archived ([Status] =

Page 38: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

31

‘Active’) geo-objects. In the execution of the ‘Set Date’ tool, each feature class

layer in the data frame is queried to establish whether the tGIS Extension is

enabled. If the tGIS Extension is enabled, the attributes being used for the

created date and retired date are retrieved and used in the date query. This

maintains the flexibility of archival attribute names established within the tGIS

Extension controls in ArcCatalog.

3.5 Fort Campbell GIS Datasets and the tGIS Extensi on

GIS and digital spatial data have been available on Fort Campbell Army

Base for several years now. The Fort Campbell Army Base Public Works

Engineering Division maintains the datasets used to test the tGIS Extension.

Fort Campbell Army Base is located on the Kentucky-Tennessee border in

Montgomery and Stewart counties in Tennessee and in Trig and Christian

counties in Kentucky. The two largest bordering towns are Clarksville,

Tennessee and Hopkinsville, Kentucky (Figure 1).

Figure 1: Location: Fort Campbell Army Base

Montgomery County, TN

Stewart County, TN

Trigg County, KY Christian County, KY

���I-24

���I-24

���I-24

tu79

tu41-A

tu79

tu41-A

tu79

tu79

tu41-A

��374��120

��49

��345

��107

Hopkinsville City Limit

Clarksville City Limits

Fort Campbell Army Base

State Line

Page 39: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

32

Fort Campbell Army Base (training and cantonment areas) is 164 square

miles in size. The cantonment (non-training area), which is the working

community part of the installation, is 21.5 square miles (Figure 2).

Figure 2: Training Area and Cantonment Area

The cantonment area is a city within the Army Base, with approximately

28,000 soldiers stationed at the installation. There are more than 4000 homes

within the cantonment area, providing housing for officers, enlisted soldiers, and

their families. The garrison supports seven schools, a major hospital, childcare

facilities, numerous chapels, two banks, restaurants, post exchanges, service

stations, campgrounds, five swimming pools, and most other facilities that a

civilian city of that size would possess (U.S. Army Corps of Engineers 2006).

The cantonment area contains ~3100 buildings and ~170 miles of roads, with

associated utilities and infrastructure, to support a community of ~35,000 people.

Training Area

Fort Campbell Army Base

Cantonment Area

FR1901

FR2001

FR5101

FR

320

1

FR4401

FR

200

2

FR1702

East Colson Road

FR

110 1

FR

3 10 1

FR

230

1 FR

1 00

1

Parkertown Road

FR

170

1

State Line

CENTERLINE ROAD

DESTINY TRAIL

SUKCHON ROAD

MC

NA

IR R

OA

D

HELL CAT TRAILPHAN RANG

PATTON ROAD

KIL

LEB

RE

W R

OA

D

ANGELS ROAD

ROSE HILL ROAD

PERIMETER ROAD

MABRY ROAD MABRY ROAD

PA

TT

ON

RO

AD

Page 40: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

33

Two infrastructure datasets were selected for archival tracking activation.

These datasets are a polygon feature class representing buildings and a polyline

feature class representing the centerline road network. Both datasets, which are

stored in personal geodatabases, are in the Tennessee State Plane Coordinate

System, NAD83, with units of Survey Feet.

One of these personal geodatabases is the Buildings.mdb personal

geodatabase maintained by Fort Campbell Public Works. The feature class of

interest is called Bldgs_Existing and contains ~3100 polygon features. Each

polygon feature represents a building’s footprint. About 15 different attributes are

defined for this feature class. The GIS manager spatially updates this feature

class as buildings are constructed, changed and demolished. The attributes of

this feature class also change based on the building’s tenant and its use. This

information is tracked by a different database but is synchronized to the

Bldgs_Existing feature class. The spatial and attribute changes of this feature

class are now managed by the archival GIS implementation. In the baseline

implementation of this feature class, an existing field [Year_Built] was used to

populate the [createdDate] attribute. Also, the [Status] attribute was set to

‘Active’ for all geo-objects in this feature class. Another feature class within the

Buildings geodatabase, Bldgs_Demolished, has been appended back into the

Bldgs_Existing feature class with its [dateDemolished] attribute transferred to the

[retiredDate] attribute and its [Status] attribute values set to ‘Deleted’. The

Bldgs_Existing feature class and Bldgs_Demolished feature class are now one

feature class called “Buildings.”

Page 41: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

34

The second personal geodatabase featuring archival implementation is

the Roads.mdb personal geodatabase. The feature class of interest is the

FTC_Rds_Centerline. This feature class contains ~1500 polylines representing

~251 roads. Maintained in this feature class are six attributes. The GIS manager

maintains both the spatial component and attribute changes of this feature class.

There is also another feature class in Roads.mdb

(Deleted_FTC_Rds_Centerlines) which will be used to construct a baseline

temporal implementation as described for the Buildings feature class above.

For both feature classes, edits have been performed and tracked to test the

usability of the tGIS Extension.

Page 42: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

35

4 Results and Discussion

4.1 Database Schema Attributes

The database schema is made up of nine attributes for tracking geo-object

changes within a feature class (Figure 3). The attribute schema archives the

who, what, and when of geo-object changes. The [TemporalID] attribute was not

utilized in this archival implementation but allows for the expansion of this

research from an archival GIS to a spatio-temporal GIS (Butler 2005).

Figure 3: Nine Attributes that Make Up the Databas e Schema

4.2 Analysis of Implementation

Below are a series of figures that describe basic GIS edits and what the

results look like in a supersede-not-delete feature class. The feature class

rendering of the [Status] attribute shows the archive state of the geo-object. The

changes to the archival attributes resulting from edits are also shown.

When a new feature has been created in the archive activated feature

class (Figure 4), it is rendered green to reflect a status of ‘Active’. The archival

Page 43: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

36

attributes are automatically populated with information pulled from the operating

system (date/time, UserName) and the ArcMap Edit session (‘Create New

Feature’).

Figure 4: Geo-object has been Created

When a feature has been deleted in the archive activated feature class

(Figure 5), it is not removed but marked as deleted ([Status] =’Deleted’). This is

where the supersede-not-delete of information is achieved. The archival

attributes are automatically updated to reflect the archiving, and the feature is

rendered red to show its ‘Deleted’ status.

Create New

Page 44: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

37

Figure 5: Geo-object has been Deleted

When a feature has been moved, a new feature is created to archive the

old location (Figure 6). The new feature is shaded orange to denote a Status of

‘Retired’. The archival attributes are updated to reflect the change.

Delete

Page 45: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

38

Figure 6: Geo-object has been Moved

When a feature shape has been modified (Figure 7), the original geo-

object (attributes and shape) is archived (orange shading) and the modified

shape becomes ‘Active’. Editor commands such as ‘Modify Feature’ are applied

using the sketch environment (an environment where the geo-object is loaded

into a sketch object, modified and then saved back to the geo-object). The edit

OnChange event is not triggered until the sketch is saved. At this point the

original geo-object (attributes and shape) is archived (orange shading) and the

Move

Page 46: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

39

modified shape becomes ‘Active’. The archival attributes are automatically

updated accordingly.

Figure 7: Geo-object’s shape has been Modified

Whereas the ‘Modify Shape’ editing task allows you to select a geo-object

(copying the feature into a sketch object) and then to modify its vertices to

change its shape, the ‘ReShape’ editing task allows you to draw a sketch object

that changes the shape of the selected geo-object where intersections between

the sketch and the geo-object occur. When the ‘Reshape’ edit task is performed

Modify Shape

Page 47: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

40

(Figure 8), the original geo-object (attributes and shape) is archived (orange

shading) and the modified shape becomes ‘Active’. The archival attributes are

automatically updated accordingly. Note that the history is building with this geo-

object. There are now 3 geo-objects representing different states of existence.

Figure 8: Geo-object has been Reshaped

When a feature polygon has been split using ‘Cut Polygon Feature’

(Figure 9), there are three resultant polygons. The original polygon is archived

Re-Shape

Page 48: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

41

and two new polygons are created. The archival attributes are recorded to reflect

the event that created and deleted these geo-objects.

Figure 9: Geo-object has been Split into Two Geo-ob jects

The ‘Auto-Complete Polygon’ operation allows the creation of a new

polygon that is adjacent to existing polygons. In the drawing of the sketch,

adjacent polygon boundaries are used to ‘auto-complete’ the polygon being

created. Note the archiving of the [createdReason] attribute of the ‘Auto-

Complete Polygon’ method (Figure 10).

Cut Polygon

Page 49: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

42

Figure 10: Geo-object has been Created by Auto-Comp lete Polygon

The editor toolbar commands are on the ‘Editor’ drop down menu. Of the

nine editor toolbar commands only the ‘Merge.…’ command will be

demonstrated. The merge command works by joining two or more features

together. One feature is chosen as the ‘target‘ feature, into which the other

selected ‘source’ features will be merged. In Figure 11, two features are merged.

The result is one feature marked as deleted; the other marked as retired. Instead

of having the ‘target’ feature as the result of the merge, the supersede-not-delete

environment of the archival feature class creates a new feature instead.

Auto-Complete

Page 50: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

43

Figure 11: Two Geo-objects have been Merged into On e Geo-object

Begin Merge

End Merge

Page 51: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

44

From the above examples, we are assured that the basic logic and

archiving of geo-objects is taking place within the archive enabled feature class.

The three IObjectClassEvents (OnDelete, OnChange, and OnCreate) and the

programming logic within these events are managing the ‘supersede-not-delete’

enabled feature class. The archiving functionality is attached to the data through

the geodatabase construct and is not dependent on the ArcMap Editing

environment. This means that a series of different datasets can be loaded into

ArcMap and then edited. The archiving functionality will not be accessed unless

a feature class referencing the tGIS Extension is edited.

Implementing an archival feature class within the scope of the

IObjectClassEvents interface, though functional, is not as elegant as it could be.

Within each event, geo-objects are being recycled back into the feature class.

Viewing the feature class tables shows that the archived geo-objects are the new

geo-objects in the feature class (at the bottom of the table). The geo-object

archival process is being implemented “after the fact” of the edits instead of being

an integral part of the editing process. In the OnDelete event, the preferred

solution would be that the deleted object is filed away for future reference.

However, within the OnDelete event the deleted geo-object is copied to another

geo-object and added back into the feature class. The overhead of this extra

processing amounts to increased resource load on the computer and more wait

time for the operator. As in the OnDelete event, the OnCreate and OnChange

events are operating by retrieving edited information and loading it back into the

feature class.

Page 52: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

45

The above methods are a ‘quasi-archival’ GIS. A truly archival GIS would

handle the archiving of geo-objects within the initial edit event. This author can

imagine a different storage structure for a historic GIS where there are three

feature tables representing a feature class in a storage unit, instead of one

personal geodatabase feature table representing the feature class. One feature

table tracks the [Status] = ‘Active’ features, another feature table tracks [Status] =

‘Retired’ features and the other feature table tracks [Status] = ‘Deleted’ features.

Since date fields are an inherent part of this structure, when a date type query is

made, the retired and deleted feature tables would automatically be called upon.

The rest of the time, these tables would sit seemingly dormant, but always

collecting and storing archived information.

While developing the tGIS extension to operate on the geodatabase, it

became apparent that there was at least one other ArcObject class where

archival methods could be implemented. This was in the IEditor and

IEditorEvents class. The IEditorEvents class supports onDelete, OnCreate,

OnChange and OnSelection events. Within the Edit environment we could also

create archival functionality that would manage the geo-objects. A limitation of

the IEditor class is that changes made outside of an edit session would not be

archived (as in a global attribute edit). The IObjectClass does allow archiving of

changes outside of an edit session. A hybrid solution using both classes may

lead to the most elegant solution. In the current tGIS Extension, the Editor

session (IEditor) is called upon to record [createdReason] and [retiredReason]

attribute values but the IEditor Events are not utilized.

Page 53: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

46

As mentioned earlier in this thesis, geo-object filiation is not tracked in the

current tGIS Extension. In its current form, the tGIS Extension tracks the history

of the feature class and edits performed in the feature class. This partially

captures the geo-object history. To fully track the history of a geo-object, we

would need to track the lineage of that geo-object. As in the merge process

discussed, a geo-object could have many parents. What were the parent geo-

objects that the geo-object has superseded? Also, we are not capturing the

children of a geo-object in our current implementation. If a multi-part geo-object

is exploded into its non-contiguous elements, what are the child geo-objects that

were created from the geo-object?

4.3 Analysis of Display

As stated earlier, the display of archived geo-objects is the exception, not

the rule, in GIS use. A way to prevent the display of archived geo-objects when

not wanted by the user is needed. The tools to control archived geo-object

display are built into ArcMap functionality. ArcMap allows creation of a layer (.lyr)

file. The layer file points to a GIS dataset or series of GIS datasets. The layer

file also records how each GIS dataset will be rendered on the map. Within the

layer file the definition query property is used to control what geo-objects within

the feature class are displayed. We use the temporal attribute, [Status] =

‘Active’, to display only current geo-objects within the feature class. A GIS

manager usually allows access to GIS data for GIS users through a hierarchical

structure. If within this structure the GIS manager places the layer (.lyr) files, not

the actual GIS datasets, he can control the loading of the archival GIS datasets

Page 54: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

47

so that on the initial load of the data only the ‘Active’ geo-objects are visible to

the GIS user. Storing the layer files in the defined hierarchical structure and the

actual datasets in a separate location allows the GIS manager to control access

to the archival data by the GIS users. Figures 12 and 13 illustrate that the layer

files are stored in a different location than that of the personal geodatabase. This

is shown by the different folder names for the location of these files.

Figure 12: Layer Files Used to Access GIS Data

Page 55: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

48

Figure 13: Geodatabase Stored at Separate Location to Control Rendering

The display of the feature class using this method along with a rendering

of the [Status] attribute is shown below using the Fort Campbell Buildings and

Streets feature classes. The two feature classes have been geo-object archive

enabled with the tGIS Extension.

When the archival feature classes are loaded using a layer file with the

definition query set to [Status] = ‘Active’, the presentation of the GIS data shows

only ‘Active’ geo-objects (Figure 14).

Page 56: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

49

Figure 14: User Display of Archival Data Controlled by Layer File

If the archival feature classes are loaded from a separate set of layer files

that display the archived geo-objects, the display of geo-objects will be different

(Figure 15). Note that the layer files point to the exact same feature classes in

Figure 14 and Figure 15. In Figure 14 the display of geo-objects is controlled by

the definition query ([Status] = ‘Active’). The geo-objects are rendered by road

type and building use. In Figure 15, all geo-objects for each feature class are

displayed (the definition query is blank). The feature class geo-objects are

Page 57: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

50

rendered over the [Status] attribute so that the reader may see what is not

displayed when the definition query is set to [Status] = ‘Active’, as in Figure 14.

Figure 15: Display showing Archived Geo-objects

The management of the display, or non-display, of archival data is easily

managed within ArcMap functionality using ArcMap layer files to control data

access as demonstrated above.

Page 58: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

51

4.4 Analysis of Query

The statement earlier on archival display applies to temporal query. In

everyday use of a GIS, the temporal query is an exceptional practice, not the

rule. A method to perform temporal queries has been developed by the author.

A toolbar called the ‘temporal GIS Toolbar’ has been established within the

ArcMap environment. Tools implemented with the tGIS Extension that allow

temporal querying of geo-objects can be placed on this toolbar. One tool has

been developed for this toolbar. The tool consists of a text box in which a date

may be entered (Figure 16). When a date is entered, the ArcMap Table of

Contents is then reviewed for any feature layers that have the tGIS Extension

implemented. If an archival layer is found, the date is applied to the feature layer

by defining a query definition on that layer which displays geo-objects that were

‘Active’ during the date entered. The date is appended to each archival feature

layer’s name to indicate that a date query has been made. Clearing the date tool

text box will reset all archival feature layers to show current ‘Active’ geo-objects.

Figure 16: Temporal GIS Toolbar and Query Tool

Shown below is a progression from ‘Active’ geo-objects (Figure 17) to the

results of a Date query made with the Date tool (Figure 18).

Page 59: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

52

Figure 17: Archival Layers are showing the ‘Active’ Geo-Ob jects

In Figure 17, the ‘Date of Display:’ is blank. This indicates that all archival

layers are displaying the current “Active” geo-objects.

In Figure 18 the ‘Date of Display’ is set to October 10, 1961. The archival

layers display the geo-objects in existence for that date. Also, each archival

layer has this date appended to its layer name.

Page 60: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

53

Figure 18: Display with Definition Query set to Dat e

The application of the query tool is straightforward, and the results and

management are easy to see and understand. The tool only works on archival

feature layers and leaves the others alone. If there are no archival feature

layers, the tool does not change the display environment. The ability to work with

an individual layer is left available, and the syntax of the definition query is within

the feature layer to allow easy modification. For example, assume that we want

to compare the same archival feature dataset on different dates. We can load

the same feature dataset into our ArcMap session multiple times. The ‘Set Date’

Page 61: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

54

tool could be used to set the initial date of our data layers. Then each feature

layer’s properties could by accessed to modify the query definition. The proper

syntax for the definition query has been established by the ‘Set Date’ tool and all

we have to do is change the date to that date which is desired. By clearing the

text box we can reset all the archival data layers to the active geo-objects.

Like any GIS tool, the ‘Set Date’ tool can also cause some trouble. If you

have predefined query definitions on an archival feature layer, this tool, if used,

will change that query definition to the date used in the tool. This event could

cause inadvertent changes to the information the user wishes to be presented.

Page 62: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

55

4.5 Summary

Four areas of development were defined to create an archival GIS

template. The database schema was developed from the literature review. The

database implementation was developed from Microsoft Visual Basic and ESRI

ArcObjects utilizing enhancements to the functionality of the personal

geodatabase. The temporal data display was organized from existing ESRI

ArcMap functionality. Temporal query capability was developed from the

extensibility of the ArcMap environment using Microsoft Visual Basic and ESRI

ArcObjects. The implementation of the supersede-not-delete data management

environment was the crux of the successful implementation. The maturation of

the personal geodatabase storage and the ArcObjects tools (which extend the

functionality of the personal geodatabase) allowed this environment to be

created. The maturation of the ArcMap display and query environment permitted

the rest of the archival implementation to proceed.

Traditionally, one of the important issues within temporal GIS research is

storage space when trying to keep track of the time dimension (Freeman 2003,

Raza 2001, Langran 1992, Halls and Miller 1996). The supersede-not-delete

method of geo-object management, which essentially records time by change

events, is one of the economic storage methods. A method was developed to

determine the effect of the supersede-not-delete geo-object implementation on

the Fort Campbell buildings feature class. The editing functions covered above

have been put in table form and the effects of the geo-object archiving have been

Page 63: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

56

quantified (Table 1). An average number of edits per month on the buildings

feature class was determined by author experience.

Table 1: Effect on Geo-object Archiving on Building s Feature Class

Edit Type Non-Archival Feature Class Number of features created

Archival Feature Class Number of features created

Buildings Feature Class Number of edits per month

Features added non-archival Feature Class

Features added archival Feature Class

Create feature +1 +1 4 +4 +4 Delete feature -1 0 3 -3 0 Move feature 0 +1 3 0 +3 Modify feature 0 +1 3 0 +3 Reshape feature

0 +1 3 0 +3

Split feature 1 +2 1 +1 +2 Auto-Complete 1 +1 2 +2 +2 Change Attribute Value

0 +1 10 0 +10

Merge -(n*-1) +(n+1) 0 0 0 Total +4 +27

* n = number of features being merged.

From observing the number of features added monthly to the buildings

feature class in the non-archival and archival methods, it can be determined that

there is almost a 7 fold increase in the number of geo-objects stored per month.

To calculate estimated increase in storage, a new geodatabase was created.

The file size of the geodatabase was recorded from the operating system as 484

kilobytes. The archival buildings feature class was then copied into the new

geodatabase. The file size of the geodatabase increased to 3,132 kilobytes.

The buildings feature class contains 3,847 records. Subtracting the initial size of

the empty geodatabase from the size of the geodatabase containing the

buildings feature class and observing the size of the buildings feature class

versus the number of records, it was determined that 1 building geo-object is

equivalent to 0.89 kilobytes of storage within the geodatabase. Taking into

Page 64: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

57

account the 27 new geo-objects per month and the 0.89 kilobyte record size, the

increase in storage for the archival feature class for one month would be 24.03

kilobytes. The storage increase for one year would be 288.36 kilobytes. The

current size of the geodatabase is 3,132 kilobytes. At the increased rate of

feature creation due to the supersede-not-delete method it would take 252,868 /

288.36 = 876.9 years to reach the practical limit (250MB) of the personal

geodatabase. Though this analysis is not complete in scope, the increase in

storage indicated is acceptable for the buildings feature class.

Page 65: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

58

5 Conclusion

The premise of this thesis was that the maturation of GIS software, GIS

databases and computer operating systems would allow the development of an

archival GIS template to create and manage a historic GIS. The research

objective for this thesis is to develop a generic temporal template for geo-objects

using available commercial GIS software and apply it to facility management for

Fort Campbell Army Base. The objective as defined by the literature review was

to develop a quasi-temporal supersede-not-delete database model to track static

geo-objects using database time and elements of world time using the linear time

definition.

As defined by Freelan (2003), a quasi-archival GIS was developed. Time

is tracked as an attribute instead of a dimension. This concept is implemented in

the archival database schema. The archival GIS database model uses the

“supersede-not-delete” (Kucera, Kucera and Ressler 2006) concept of archiving

all changes of geo-objects. This concept is implemented within the personal

geodatabase by extending the database functionality through the

IObjectClassEvents interface.

The created archival GIS template is meant for small to medium sized GIS

which manage relatively static geo-objects. This constraint is due to the

limitations of the storage medium (personal geodatabase). The concepts of

database time and world time are handled within the database schema and the

Page 66: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

59

database implementation. Database time is easily pulled from the computer’s

operating system and stored in an attribute defined in the database schema.

World time is most easily handled when it can be considered the same as

database time. If not, world time requires a manual edit to maintain if it is not

pulled in from a different information source, such as a separate database that is

itself maintained by another entity. The linear definition of time means that we

are dealing with a continuous timeline of past and present. This is necessary in

the tracking of static geo-objects and community infrastructure.

The thesis objective has been achieved with some caveats, limitations and

warnings. An easily installed Extension (tGIS) to ESRI’s ArcMap/ArcCatalog

software has been created that extends their functionality. The personal

geodatabase functionality has been extended to manage the archiving of geo-

objects within feature classes. For the archival implementation to work, it

requires a GIS manager who understands and has permissions to register a DLL

file and run a registration file. The GIS manager also needs to understand how

an ESRI layer file works and how to set up a directory structure where the users

reference a layer file instead of accessing the temporal feature class directly.

The GIS manager must also understand some inner workings of the personal

geodatabase MS Access file in order to enable or disable the tGIS functionality

when the need arises. Although the knowledge needed by the GIS manager is

not difficult to acquire, this setup and understanding does keep the archival GIS

template from being totally free of management overhead by the GIS manager.

It is possible to unnecessarily create many superfluous geo-objects if the GIS

Page 67: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

60

manager forgets to disable the archival management when first enabling a

feature class with the tGIS Extension or through the making of attribute edits

outside of the ArcMap Editor environment.

Further development of the archival GIS template is needed for it to reach

its potential. The [temporalID], though a part of the database schema, has yet to

be implemented. The establishment of this spatio-temporal attribute to uniquely

identify a geo-object through its life-cycle within the geodatabase would allow the

expansion of the functionality of the archival template into a temporal template.

This would allow the expansion of the ‘temporal GIS Toolbar’. A tool to track the

filiation of a geo-object could then be developed. This would answer the second

temporal question posed in chapter 1: “How has feature ‘Y’ changed through

time?”. The implementation of the [tempporalID] attribute would also allow the

development of a tool to answer question 3: “What was in the space of feature ‘Z’

at time ‘B?’”. The author could see this question being answered in an

interactive manner. A polygon shape could be drawn on the map, a date entered

and the geo-objects meeting the criteria of the spatio-temporal query would be

displayed.

Currently the archival GIS template has been applied to buildings and

street centerlines in the Fort Campbell GIS. The usefulness of this archival

template can be applied to utility networks, land use designation, and many other

GIS layers maintained at Fort Campbell. The author plans on exploring its use

and usefulness for more layers within the Fort Campbell GIS.

Page 68: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

61

It is also recognized that their can be other ways to implement archival

methods within the ArcGIS environment. The personal geodatabase supports

the creation of class tables to contain information. This capability has not been

utilized in the archival GIS template. Perhaps the creation of a new geo-object

when attribute changes occur can be avoided by using separate tables to track

attributes changes. It may be possible to actualize with ArcGIS ArcObjects the

concept presented earlier, that of having three feature tables to represent Active,

Retired, and Deleted geo-objects within a feature class. The feasibility of this

concept has not been explored. Expanding the current archival attainment to

ArcSDE RDBMS is probably easily achievable but it is outside the scope of this

author’s current GIS tools.

It is hoped that this actualization of an archival GIS template will be seen

as a step forward towards common use of historic GIS.

Page 69: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

62

Appendix A: Code implementing ‘Supersede-not-delete ’ Private Sub IObjectClassEvents_OnDelete (ByVal obj As esriGeoDatabase.IObject)

Dim pFClass As IFeatureClass Set pFClass = obj.Class ' Get FeatureClass Dim pTable As ITable Dim pRow As IRow Dim newRow As IRow Dim i As Integer Set pRow = obj 'Get row of deleted geo-object Set pTable = pRow.Table 'Get Table of feature class that geo-object is from Set newRow = pTable.CreateRow 'Create a new row in the table For i = 0 To pRow.Fields.FieldCount - 1 If newRow.Fields.Field(i).Editable Then

If i = m_lStaField Then ' Mark the geo-object as deleted for archive newRow.Value(i) = "Deleted" Else newRow.Value(i) = pRow.Value(i) End If End If Next newRow.Store ' Create new geo-object that is being archived and marked 'Deleted' ‘Triggers OnCreate Event

End Sub

Page 70: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

63

Private Sub IObjectClassEvents_OnCreate (ByVal obj As esriGeoDatabase.IObject) ' Set the creation date and user name ' NOTE: there is no need to call IRow::Store Dim Msg As String Msg = "" If CheckInstance Then 'Check to see if in Edit Environment Msg = m_pEditor.CurrentTask.Name ‘Capture Edit Type If Not (m_IApp.CurrentTool.Name = "Editor_SketchTool" Or m_IApp.CurrentTool.Name = "Editor_EditTool") Then Msg = g_Msg End If Dim pFeature As IFeature Set pFeature = obj 'Get Feature from geo-object Dim pFClass As IFeatureClass Set pFClass = pFeature.Class ' Get FeatureClass from feature If m_lStaField > -1 Then If pFeature.Value(m_lStaField) = "Deleted" Then 'Check to see if new geo-object is coming from 'OnDelete' event ' ***** geoObject coming from the OnDelete event: Set temporal Attributes If Msg = "" Then Msg = "Feature Removed" If m_lrecDtField > -1 Then pFeature.Value(m_lrecDtField) = Now If m_lrDtField > -1 Then pFeature.Value(m_lrDtField) = Now If m_lrByField > -1 Then pFeature.Value(m_lrByField) = m_sUsrName If m_lrRnField > -1 Then pFeature.Value(m_lrRnField) = Msg ElseIf pFeature.Value(m_lStaField) = "Retired" Then ' ***** geoObject coming from the OnChange event - Retired: Do nothing Else ' ***** geoObject is a brand new geo-object just Created: set temporal Attributes If Msg = "" Then Msg = "New Feature Created" If m_lrecDtField > -1 Then pFeature.Value(m_lrecDtField) = Now If m_lStaField > -1 Then pFeature.Value(m_lStaField) = "Active" If m_lcDtField > -1 Then pFeature.Value(m_lcDtField) = Now If m_lcByField > -1 Then pFeature.Value(m_lcByField) = m_sUsrName If m_lcRnField > -1 Then pFeature.Value(m_lcRnField) = Msg End If End If ' For Enterprise geodatabases, it is preferable to use the database ' date and username, but for simplicity this sample will just use the ' client OS date and username. End Sub

Page 71: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

64

Private Sub IObjectClassEvents_OnChange (ByVal obj As esriGeoDatabase.IObject) Dim Msg As String Msg = "" If CheckInstance Then 'Check to see if in Edit Environment Msg = m_pEditor.CurrentTask.Name If Not (m_IApp.CurrentTool.Name = "Editor_SketchTool" Or m_IApp.CurrentTool.Name = "Editor_EditTool") Then Msg = g_Msg End If Dim pFClass As IFeatureClass Set pFClass = obj.Class ' Get Feature Class from geo-object Dim pRowChanges As IRowChanges Set pRowChanges = obj ' Get Feature attribute-change object Dim pFeatChanges As IFeatureChanges Set pFeatChanges = obj ' Get Feature Shape-change object If pFeatChanges.ShapeChanged And Msg = "Auto-Complete Polygon" Then Exit Sub Dim pTable As ITable Dim pRow As IRow Dim newRow As IRow Dim i As Integer Set pRow = obj ' Get Row of recorded geo-object Set pTable = pRow.Table ' Get feature class Table Set newRow = pTable.CreateRow ' Create new Row in Table ' ***** Check for shape change Dim featBool As Boolean featBool = pFeatChanges.ShapeChanged 'Check to see if shape-change occured If featBool Then ' If shape-changed occured do the following ' ***** Retire Old feature If Msg = "" Then Msg = "[Shape] Changed" For i = 0 To pRow.Fields.FieldCount - 1 If newRow.Fields.Field(i).Editable Then ' Set temporal attributes If newRow.Fields.Field(i).Name = "SHAPE" Then newRow.Value(i) = pFeatChanges.OriginalShape ElseIf i = m_lStaField Then newRow.Value(i) = "Retired" ElseIf i = m_lrDtField Then newRow.Value(i) = Now ElseIf i = m_lrRnField Then newRow.Value(i) = Msg ElseIf i = m_lrByField Then newRow.Value(i) = m_sUsrName Else newRow.Value(i) = pRow.Value(i)

Page 72: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

65

End If End If Next newRow.Store ' Commit added geo-object which is archive of original geo-object ' ***** Set Time Attributes on New feature For i = 0 To obj.Fields.FieldCount - 1 If obj.Fields.Field(i).Editable Then ' Set temporal attributes If i = m_lrecDtField Then obj.Value(i) = Now ElseIf i = m_lStaField Then obj.Value(i) = "Active" ElseIf i = m_lcDtField Then obj.Value(i) = Now ElseIf i = m_lcByField Then obj.Value(i) = m_sUsrName ElseIf i = m_lcRnField Then obj.Value(i) = Msg ElseIf i = m_lrByField Then obj.Value(i) = "" ElseIf i = m_lrRnField Then obj.Value(i) = "" End If End If Next Else ' If No shape-change then it must be an attribute value change Dim bool As Boolean Dim msgEditReason As String msgEditReason = "" 'Msg to hold which Attribute changed, set to emptystring ' ***** Retire Old feature For i = 0 To pRow.Fields.FieldCount - 1 If newRow.Fields.Field(i).Editable Then ' Set temporal attributes bool = pRowChanges.ValueChanged(i) If bool Then ' If this is the attribute that changed set MSG newRow.Value(i) = pRowChanges.OriginalValue(i) msgEditReason = "[" & newRow.Fields.Field(i).Name & "]" & " Value Change" bool = False Else If i = m_lStaField Then newRow.Value(i) = "Retired" ElseIf i = m_lrDtField Then newRow.Value(i) = Now

Page 73: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

66

Else newRow.Value(i) = pRow.Value(i) End If End If If m_lrRnField > -1 Then newRow.Value(m_lrRnField) = msgEditReason End If If m_lrByField > -1 Then newRow.Value(m_lrByField) = m_sUsrName End If End If Next newRow.Store ' Create new geo-object Row in table ' ***** Set Time Attributes on New feature For i = 0 To obj.Fields.FieldCount - 1 If obj.Fields.Field(i).Editable Then ' Set temporal attributes If i = m_lrecDtField Then obj.Value(i) = Now ElseIf i = m_lStaField Then obj.Value(i) = "Active" ElseIf i = m_lcDtField Then obj.Value(i) = Now ElseIf i = m_lcByField Then obj.Value(i) = m_sUsrName ElseIf i = m_lcRnField Then obj.Value(i) = msgEditReason ElseIf i = m_lrByField Then obj.Value(i) = "" ElseIf i = m_lrRnField Then obj.Value(i) = "" End If End If Next End If End Sub

Page 74: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

67

References

Army Pamphlet 200-1, 2002, Environmental Quality – Environmental Protection and Enhancement, Headquarters Department of the Army, Washington, D.C.

Barrera, R., Frank, A. and Al-Taha, K., 1991, Temporal Relations in Geographic

Information Systems: A Workshop at the University of Maine, Orono, Oct. 12-13, 1991.

Basoglu, U. and Morrison J., 1978, The efficient hierarchical data structure for

the U.S. historical boundary file. In Harvard Papers on GIS, Volume 4, edited by G. Dutton, (Reading, Massachusetts: Addison-Wesley).

Berman, M.L., 2003, A Data Model for Historical GIS: The CHGIS Time Series,

Harvard Yenching Institute. Available online at: http://www.people.fas.harvard.edu/~chgis/work/design/v2_chgis_data_model.pdf (accessed 12 September 2006).

Berry, B., 1964, Approaches to regional analysis: a synthesis. Annals of the

Association of American Geographers, 54, pp.2-11. Butler, A., 2005, Metadata freedom: Exchange data without national standards.

GeoWorld, Aug. 2005, pp. 36-39. Calkins, H.W. and Dickinson, H.J., 1987, The effective use of color in

cartographic displays. In Proceedings of the International GIS Symposium, Volume 3, Virginia, (Washington DC: NASA), pp. 189-199.

Corson-Rikert, J., 1987, Updating multi-layer vector databases. In Proceedings

of the International GIS Symposium, Volume 2, (Falls Church, VA: IGU), pp. 165-174.

Crissman, L.W. and Berman, M.L., 2001, Solution to the ‘Parent-Child Multiples’

Problem in the Spatio-Temporal Database Design for the CHGIS Project, Presentation to the International Workshop on Historical GIS, Shangai, CH, 2001 Available online at: http://www.people.fax.harvard.edu/~chgis/meetings/papers/crissman_paper.doc(accessed 06 September 2006).

ESRI, 2002, Modeling and using history in ArcGIS. ESRI Technical Paper, May

2002.

Page 75: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

68

ESRI, 2004, Archiving Data Model, An ESRI White Paper, Available online at: http://support.esri.com/index.cfm?fa=downloads.dataModels.filteredGateway&dmid=38 (accessed 10 June 2006).

ESRI, 2006a, ESRI Support Center, Search ArcScripts. Available online at:

http://arcscripts.esri.com (accessed 10 September 2006). ESRI, 2006b, What’s Coming in ArcGIS 9.2. Available online at:

http://www.esri.com/software/arcgis/about/whats-coming.html (accessed 16 September 2006).

Freelan, S., 2003, Developing a quasi-temporal GIS for archival map data.

Available online at: http://gis.esri.com/library/userconf/proc03/p0987.pdf (accessed 31 July 2006).

Halls, P. and Miller, P., 1996, Of todes and worms: An Experiment in bringing

Time to ArcInfo, Proceedings of the 11th ESRI European Conference, London. Available online at: http://gis.esri.com/library/userconf/europroc96/PAPERS/PN35/PN35F.HTM (accessed 31 July 2006).

Kucera, G., Kucera, H. and Ressler, J., 2006, Is time on your side? GeoWorld,

Mar. 2006, pp. 30-33. Langran, G., 1992, Time in Geographic Information Systems. (London, New

York, Bristol PA: Taylor & Francis). Lester, M., 1990, Tracking the temporal polygon: A conceptual model of

multidimensional time for geographic information systems. Paper. Department of Geography, DP 10. University of Washington. Available online at: http://ncgia.ucsb.edu/Publications/Tech_Reports/91/91-4.pdf (accessed 31 July 2006).

Nadi, S. and Delavar, M., 2003, Spatio-temporal modeling of dynamic

phenomena in GIS. Available online at: http://www.scangis.org/scangis2003/papers/11.pdf (accessed: 31 July 2006).

Raza, A., 2001, Object-Oriented Temporal GIS for Urban Applications,

Dissertation Number 79, Geoinformatics, Spatial Information Theory and Applied Computer Science International Institute of Aerospace Survey and Earth Sciences (ITC) P.O. Box 6, 7500 AA Enschede, The Netherlands.

Sinton, D., 1978, The inherent structure of information as a constraint to analysis:

mapped thematic data as a case study. In Harvard Papers on GIS,

Page 76: IMPLEMENTING AN ARCHIVAL GIS TEMPLATE UTILIZING … · advancements in historic (archival) GIS, but until applied and tested, it cannot be relied upon to solve basic problems of temporal

69

Volume 7, edited by G. Dutton, (Reading, Massachusetts: Addison-Wesley).

Thoms, E., 2005, DateGUIDstamp.zip, Public Domain. Available online at:

http://arcscripts.esri.com/details.asp?dbid=14016 (accessed: 10 September 2006)

U.S. Army Corps of Engineers, 2006, Fort Campbell Installation Design Guide.

Louisville District. Worboys, M., 1990, Reasoning about GIS using temporal and dynamic logics.

Paper. Midlands Regional Research Laboratory and Department of Computing Studies. University of Leicester, Leicester LE1 7RH United Kingdom.