ArcInfo 8.0 Geodatabase Models for NIMA
Specifications
Ross Paulson and Gary Fickling
Date
6.1.2000
The Digital Topographic Support System (DTSS) of the Combat Terrain Information Systems (CTIS) program currently utilizes ArcInfo 7.2.1 for Solaris to exploit National Imagery and Mapping Agency (NIMA) Standard Linear Format (SLF) and Vector Product Format (VPF) feature data. DTSS is migrating to ArcInfo 8 for NT, and it will model geodatabase objects and associated behavior rules for VPF products. The ArcInfo geodatabase data model facilitates complex data editing and validation. This presentation will focus on the process of modeling NIMA data in the geodatabase data model.
Introduction
This paper details the process by which the DTSS has modeled NIMA data in the geodatabase data model. This object-oriented data model and its many advanced features play a key role in the success of DTSS. Inheritance, reusability, class behavior control, subtypes, complex editing and other useful properties associated with object-oriented design contribute to the robustness and extensibility that enable DTSS to handle multiple data specifications.
The Need for a New Data Model
The
geodatabase data model serves as the foundation for the entire vector data exploitation
system within DTSS. This model is
employed when the user imports data into the system to create products to
support various Tactical Decision Aids (TDAs).
TDAs include mobility, intervisiblity, hydrology, weather, and other
products. Having a structured data
model is vital to the system, allowing the user to control what and where
attribute values are entered. This is a
benefit when editing the data. When
characteristics of a feature are added or changed, the user can only define
them based on the limitations of the particular data model, which is different
for each product. DTSS currently
supports four NIMA vector products: Interim Terrain Data (ITD) in SLF and
Vector Product ITD (VITD), Foundation Feature Data (FFD), and Digital
Topographic Data (DTOP) in VPF.
Data Model Design
The first data model created by TASC was for NIMA VITD. The tool used to create the data model was VISIO 2000. TASC successfully leveraged the modeling tools associated with this software. The software facilitates data model design in a clear and organized manner.
An incremental approach for creating the VITD data model was implemented. Individual layers were created, reviewed, and revised in isolation before being integrated into the larger model. Only when the current layer was run cleanly, exported properly, and working in ArcInfo as a standalone geodatabase did we move to the next layer.
The VITD transportation layer was selected as the first development target. Following the NIMA Performance Specification for Vector Product Interim Terrain Data (VITD) (MIL-PRF-89040A), TASC modified an Esri-supplied FFD transportation geodatabase data model into a format appropriate for the VITD transportation layer. The existing Esri FFD data model provided a natural point of departure from which to explore the intricacies of the model and the representational language. The experience of adapting the Esri transportation model to that of the VITD proved to be a valuable learning tool which was leveraged throughout the remainder of the development process.
The
overall structure of the transportation layer includes seven feature classes:
one area feature, four complexEdgeFeatures, and two SimpleJunctionFeatures
representing area, lines, and nodes respectively. Each of the feature classes contains one or more subclasses, with
a total of twenty-two subclasses for the entire set. The NIMA specification spelled out the organization of the model
in the following schema tables.
Area Feature Class: feature
TRNAREA (transportation area)
Line Feature Classes: complexEdgeFeatures
TRBLINE (transportation bridge line)
TRDLINE (transportation road line)
TRNLINE (transportation line)
TRRLINE(transportation railroad line)
Node Feature Classes: SimpleJunctionFeatures
TRBDGND (transportation bridge node)
TRNNODE (transportation node)
Each
of these schema tables represents a feature class with a list of attribute
domains. Each feature class was
individually coded with its particular list of attribute domains. The TRRLINE
is a good example of how a feature class is laid out.
Within
this feature class, there are three features: Railroad, Railroad
Siding/Railroad Spur and Railroad Yard/Marshalling Yard, as shown above. Each of these features has the same list of
attribute domains, since attributes and attribute values are defined at the
feature class level. This is where
utilizing object-oriented modeling allows us valuable flexibility and
functionality. There are seven
attributes in this class abbreviated with the three-letter codes shown below:
·
CTL - Cumulative Track length
·
EXS - Existence Category
·
FCO - Feature Configuration
·
LEN - Length/Diameter (meters)
·
RRA - Railroad Power Source
·
RRC - Railroad Categories
·
RSA - Railroad Spur/Siding Attribute
Each
attribute contains a set of numbers representing its possible values. The data model has two types of domains:
discrete and continuous. The EXS
attribute, for example, is a discrete or coded value domain because its
attributes are constrained to a list of predefined values. Figure 2.0
illustrates this notion, showing the possible coded values of #0, # 1, #5, or
#8 for the EXS category. All other
values are prohibited. Alternately, the
continuous or range domains are restricted only at their upper and lower
bounds. Figure 3.0 shows the CTL
attribute, the values of which can be any integer from 0 to 99,998 meters
Figure 2.0. Existence Category attribute description.
Figure 3.0. Cumulative Track Length attribute description.
Attributes
are associated with features using the Feature Code (FCODE) identifier as
defined by the Feature Attribute Coding Catalogue (FACC). In both of the above figures, the FCODE
applicable to a particular attribute/attribute value combination is listed on
the far right. While a feature class
defines a set of possible attributes and attribute values for one or more
features, certain attributes and attribute values are often specific to only a
subset of features within a given feature class. Inapplicable attributes for a
given feature are assigned an attribute value of Null. In the case of the EXS
example, four coded attribute values are available. Figures 4.1 and 4.2 represent adaptations of the attribute
description detailed in Figure 2.0.
Figure 4.1. exs_trn shows one of three EXS coded
value domains:
Figure
4.1 shows that the attribute value for dismantled
is not coded. This is because some of
the features, such as Railroad Siding/Spur and Railroad Yard/Marshalling Yard,
do not employ the dismantled value in
their EXS domain. Instead, they use exs_trn, which
is coded to meet their more restricted needs.
Figure 4.2. exs_trn_dismantled shows EXS coded value domain with the dismantled value present:
Figure 4.3. exs_trn_abandoned is another exs domain needed for another EXS attribute for an Area feature.
The railroad feature uses exs_trn_dismantled,
while the other two features use exs_trn. The
third domain represented in Figure 4.3 is used for a feature in a different
feature class. Runway_Area is another feature in the Area feature class, not shown
in Figure 1.0, which requires an “Abandoned/Disused” value for its Existence
Category attribute.
All
three of these domains are used throughout the model. For the purpose of reusability, the number of domains was limited
by creating those that applied for multiple features. Depending on the attribute values that a feature requires, one of
these domains should suffice.
Figure 5.0 shows how the information shown in Figure 3.0 (a range domain) is coded. Range domains are simply coded with a MinValue and a MaxValue. The unknown value of zero is included in the MinValue. This allows the user to enter a value instead of selecting a value when editing. If the attribute uses a coded value, the user would select one of the values provided. Here the values are set 0 to 99998; when entering values during editing, they cannot exceed the MaxValue limit.
In
Figure 1.0 some of the attributes are defaulted to null. This is because not
all attributes apply to all features in the feature class. A special null coded value domain was
created to accommodate this. Its
default value is –2147483647. Attributes
that do apply default to 0, indicating that their value is unknown. When data is imported into the system, these
defaults are replaced by actual values.
After import, users have the ability to add or correct the data as
necessary. The user can only enter or
select the defined values that are previously encoded in the data model.
An
example above can be illustrated when the user creates a new railroad
line. After he has digitized the entity
into the data, he must populate the attribute values. In this feature class there are seven attributes to be
assigned. Using the ArcMap editing GUI,
the user can assign values to attributes in two ways. For range domains, he can enter a value from a set minimum to a
designated maximum. If the attribute is
not a range but a coded value domain, he can use the pull-down menu to select a
designated value. This is the key to
controlling data integrity, since only the allowable values for every feature
are modelled. By creating feature classes with default attribute values,
features can inherit these rules for their use.
Working with the Geodatabase
When
the data model is exported out of VISIO, a data repository is created. To create a personal geodatabase in
ArcCatalog, the user goes to a folder location and right clicks, selects new,
and chooses “Personal Geodatabase”. He
names it and creates a “Feature Data Set” in the same manner, then fills in the
name of the feature data set and enters the geographic coordinate information. Once that is done, he must use the schema
wizard, created by Esri, to import the database. This schema wizard takes the data repository and creates the
geodatabase from the various feature classes, features, ranges, and coded value
domains as well as all of the other entities that have been modeled. Currently this is done semi-automatically
using the schema wizard, but in the future, full automation should be possible.
There
are some aspects of this process that need further refinement before a fully
automated system can be created. The
wizard steps the modeler through several windows to finalize the specifications
for each feature class. For example,
the model creator must manually enter user-friendly aliases for each attribute
code during the import process. To
avoid this, one static geodatabase is created with all of the aliases for the
attribute codes filled in, along with all of the other manual operations
associated with creating geodatabases.
The coordinate system will be set to the entire world in order that
everything will be covered.
The
first stage of creating a TDA product is the import process. The system will recognize the NIMA product
and will use the proper geodatabase template.
The data will filter through the importer and generate the appropriate
entities. The geodatabase will have
every possible data entity coded and available even if it does not exist in
that particular data set. This is
required for editing and adding information to the data.
DTSS
benefits greatly from an organized object-oriented model. The current DTSS UNIX data editing software,
Terrain Update Module (TUM), uses a data model that is not
object-oriented. Instead,
it has sets of text files that define all the attribute feature classes and
codes for particular layer types.
Object-oriented modeling allows the DTSS software to evolve beyond the
limitations inherent in this approach, taking advantage of inheritance for
reusing and constraining TDAs. An
object-oriented database provides a great deal of flexibility for dealing with
terrain data.
NIMA
produces many different types of terrain data products with varying
resolutions, as well as different sets of features and attributes. These data products provide different
capabilities for analysis. The goal for the future is to develop an inheritance
hierarchy that allows the DTSS software to work with any appropriate data
product without regard to the details of its structure and feature/attribute
schema. For example, all data models powerful enough to run a mobility analysis
will inherit from the same parent. As
new data products are added to the system inventory, DTSS will be able to
exploit them without requiring drastic software changes.
Conclusions
Object-oriented data models provide a natural means of representing the complex relationships inherent to geospatial modeling. As DTSS evolves, the goal is to maintain the generality and flexibility that the object-oriented paradigm of ArcInfo 8 has affords in order to continue to accommodate changing and complex data formats.
Ross Paulson
MTS, Litton TASC, Inc.
4801 Stonecroft Blvd.
Chantilly, VA 20151-3822
Fax (703) 793-3700 x2712