1. 学习思路
在此前对ArcGis Geodatabase编程结构的学习中,我发现自己对Geodatabase学习过程有一些问题。我刚刚开始就直接看Geodatabase编程相关的类图和编程结构图,在大脑中仅仅是对Geodatabase程序上的使用有了一些认识;但是没有从总体上认识Geodatabase的内部原理,既是没有形成用Geodatabase映射和理解地理信息的世界观模型(在此要郑重的说明,在现在的GIS邻域,并不是只有Geodatabase这一唯一的地理信息世界观模型。并且随着科技的进步世界观模型必将继续发展,我们也要敢于去创新和改进)。
在师兄师姐的指导下,我开始看如下的一本电子书《Modeling our World》(以下简称《MOW》),它是ESRI公司提供的ArcGis 8.1附加书籍中的一本。通过阅读《MOW》,我开始初步认识到如何将现实世界中的地理信息转换为计算机可以处理的矢量或者非矢量数据、如何更好地根据GIS软件的需求去设计GIS数据库、如何将统计和分析的成熟算法或者新算法更好地和基础GIS数据库的设计相结合。
2. 学习笔记
2.1 Preface绪言
在《MOW》的绪言中,提出了所有地理信息系统的建立,都遵循一个基本原则——映射和反应真实的地理空间以及空间中定位的地物对象。
其实在我们的日常生活中,这种映射是很常见的,例如政区地图、或者地形图等等,通过平面的地图我们可以在大脑中对地物对象的空间位置信息进行模拟和还原。人们对于地图千百年来的改进和规范,使地图的绘制和使用都有了规范,比如:在没有标注方向的地图上按照上北下南左西右东来规定方向、使用蓝色的线条来表示河流等等。同地图相似,在GIS模型映射地理空间和地物对象时,也有自己的规范。使用Geodatabase模型来映射时,就要遵循Geodatabase的基本架构和对象模型。
2.2 Object modeling and geodatabases
这是《MOW》的第一章,在其中就GIS模型的历史和发展作了介绍,特别提出了Geodatabase模型的特点。
GIS系统的基本功能就是提供一个空间框架模型辅助决策使用土地资源和管理人造环境。通常地理信息的表述是地图和各种标记。在文中有如下的一段话:
In this view, a single real-world thing, such as the
Mississippi River,should be modeled as a single thing within the GIS. Perhaps, behind the scenes, the system could automatically use multiple representations for these real-world things. If you ask “What is upstream?” it could use a network representation of the river. If you ask “What is the surface area of the water?” it could use a polygon feature representation. If you ask “What area does it drain?” it could use a surface or terrain representation, and so on.
由此可以说明GIS空间模型对现实世界地物对象的映射过程。
我们所认识的世界中有很多地物对象,有多种方法建立计算机可以使用的GIS模型。在此对几种通用的地理学对象进行说明:
l Features:是地图上离散的对象,包括点、线、多边平面图形。
l Network:是线型feature按照一定组合规范形成的集合,包括管网、流向网、路网等,适合各种tracking分析。
l Surface:往往是使用平面的信息去存储高程的信息,可存储为TIN(三角不规则网)、包含仰角的栅格图单元或者等高线集。
l Location:在geodatabase中,location表现为地址、XY坐标、邮政编码、地名、路由转向等。它包含了创建features的信息(可理解为可通过location创建对应的features)。
l Image:栅格图像处理技术常被用于表现features的背景,超大容量的栅格图处理技术尤为显得重要。
值得说明的是,以上的各种地理学对象,在Geodatabase的编程结构中都有对应的类来表现,但可能在名称上有一些变化。
在GIS系统五十余年的发展过程中,表现和存储上述对象的数据模型经历了三个重要的发展阶段:
1. The CAD data model:这是GIS系统使用的第一代空间模型,主要用于上1960至1970年代,它将矢量图形存储到CAD文件中,只能包含很少的属性信息,图层和标志信息也作为属性信息存储。
2. The coverage data model:在1981年,ESRI最早在其GIS系统中引入。它的出现在当时具有很大的意义,也使得GIS系统开始和CAD系统有了明显的区别,被成为第二代空间模型。它将空间数据和属性数据结合管理,能按照空间索引属性的规范存储到关系数据库中。更重要的是,在这种模型下features间的拓扑关系能够被存储和处理,能进行对应的空间分析。The coverage data model的使用给高性能GIS系统的发展提供了可能,我国自主研发的GIS系统中,到2005年多数仍然使用该模型。例如北京超图开发的SuperMap objects。
随着GIS系统的进步,The coverage data model的不足也暴露出来:不能从地物对象的本质上去描述地物对象,例如河流和公路都使用线形features来描述,而不能从地物本质上区别两者,更无法直观表现河流流向等流信息。同时类似交叉的公路连接也很难表述,该模型中features的扩充能力有限。
3. The object-oriented data model:在《MOW》中,称其为“The Geodatabase data model”,但第三代空间模型更合理的名称应如标题所示。面向对象从90年代以来就一直是各种计算机开发研究中的宠儿,它不能带来运行效率的提升,但确能够改进软件模型的设计、提升对现实世界模型化的描述能力。以Geodatabase为代表,面向对象的空间模型主要改进包括:(详见《MOW》P15)
l 扩展和编辑features的能力,能够用类和对象的观点去转换地物,如带有流向的河流。
l 改进了features间的关系表达。如主干电网和其分支间的关系等。
l 能绘制更美观的地图,例如公路的交叉等地物可以得到描述和绘制。
l 能够表达子对象和父对象的关系,使得空间分析更加合理化和多样化,例如主干电网和子电网不同的负载能力分析。
以下引用原文中提出的改进:
l A uniform repository of geographic data. All of your geographic data can be stored and centrally managed in one database.
l Data entry and editing is more accurate. Fewer mistakes are made because most of them can be prevented by intelligent validation behavior. For many users, this alone is a compelling reason to adopt the geodatabase data model.
l Users work with more intuitive data objects. Properly designed, a geodatabase contains data objects that correspond to the user’s model of data. Instead of generic points, lines, and areas, the users work with objects of interest, such as transformers, roads, and lakes.
l Features have a richer context. With topological associations, spatial representation, and general relationships, you not only define a feature’s qualities, but its context with other features. This lets you specify what happens to features when a related feature is moved, changed, or deleted. This context also lets you locate and inspect a feature that is related to another.
l Better maps can be made. You have more control over how features are drawn and you can add intelligent drawing behavior. You can apply sophisticated drawing methods directly in the ArcInfo mapping application, ArcMap. Highly specialized drawing methods can be executed by writing software code.
l Features on a map display are dynamic. When you work with features in ArcInfo, they can respond to changes in neighboring features. You can also associate custom queries or analytic tools with features.
l Shapes of features are better defined. The geodatabase data model lets you define the shapes of features using straight lines, circular curves, elliptical curves, and Bézier splines.
l Sets of features are continuous. By their design, geodatabases can accommodate very large sets of features without tiles or other spatial partitions.
l Many users can edit geographic data simultaneously. The geodatabase data model permits work flows where many people can edit features in a local area, and then reconcile any conflicts that emerge.
由此得到Geodatabase所使用的类模型框架: