电子海图 VPF要素关系模型的实现

1引言

随着信息技术的不断发展,电子海图及其应用系统取得了长足进步,沿海国家纷纷推出各自的数字海图产品,并先后投入航海使用[1]。在这其中,欧洲国家主要采用国际海道测量组织(IHO)的S-57体系[2],中国主要采用ArcInfo格式的海图数据[3],而美国采用的则是由国家图像与制图中心公布的DNC(数字海图产品)标准,其文件格式为VPF。

矢量产品格式(vectorproductformat,VPF)是按照大型关系数据库的结构和标准来组织的数据格式,它是基于地理关系数据模型并可直接使用的。它具有良好的兼容性,可与多种数据格式兼容并可被多种应用系统使用。VPF允许应用软件直接从电脑存储介质中读取数据,而无需事先将其转换为一个中间格式;用表的形式来对点、线、面、文本等地理信息进行管理,并使用多种索引来对空间数据和专题数据进行存取管理。同时还定义了数据对象的格式和地理关系模型的组织方式,以方便应用软件的解析。通过对VPF文件的解读,建立了与其他海图文件的转换模块,为多种海图数据的兼容提供了基础。

2VPF理论数据模型

VPF使用了关系和平面拓扑数据模型的结合来为地理数据的管理、分析、建模和显示提供了一个混合模型。地理关系模型为空间数据库提供了数据结构基础,为软件提供了处理拓扑关系、几何数据和关系对象的表操作方式。当操作需要专题信息,可以使用关系和拓扑操作表来提供结果。如果操作是空间相关的,则几何和拓扑信息一起使用。这一分类(几何、拓扑和关系表)提供了一个很好的数据库构架[4]。

VPF依附于地理关系数据模型,但仅定义了对象和组成对象的数据结构。地理相关的操作都通过详细定义的字段和实际数据行来组成。

2.1数据组织

VPF只使用三种类型的文件:目录、表和索引。目录就是标识一个文件集合的名称和它们起始地址及长度的文件。见表1。

VPF目录是严格分图层的,每一个文件都精确包含在一个目录中。表是所有数据内容有组织的结构,VPF数据库中的所有表共享相同的基本结构。在VPF数据模型中,所有的地理现象都被VPF表或者由VPF表派生的表模式化。见表2。

VPF使用了多种索引来方便软件开发应用,除了可变长的索引外,还支持空间索引和专题索引。

2.2模型组成及数据质量

VPF数据模型组成部分可以被分为四个结构图层次,见图1。


VPF考虑到数据质量信息的存储,允许为了某些特定应用而进行数据质量评估。数据质量信息可以存储在VPF的任一图层次中。

3VPF要素类型及要素关系模型

3.1VPF要素类型

(1)要素定义

一个要素通过一组一个或多个基元、唯一表示要素的要素表中的单一行属性数据,以及其他表中的零行或多行属性数据来表示。表3表示了VPF中一张要素表的基本结构。


(2)要素类型

VPF中要素类有两种类型:简单要素类和复杂要素类。一个简单要素类由一个(逻辑上)单一的基元表和一个单一的要素表组成,而一个复杂要素类由一个图层中的一个或多个简单要素类、一个或多个复杂要素类、或者二者兼有,和一个单一复杂要素表组成。例如,一个复杂流域要素可能由诸如河流、泉和湖泊这些简单要素构成。

3.2VPF要素关系模型

VPF中有四种几何基元:点、线、面和制图基元。其中点基元可分为实体型节点和连接型节点,而制图基元主要为文本型。这四种基元结合起来通过使用矢量几何可以模拟任一地理现象。除文本外所有的基元可以通过拓扑关系相互连接[5]

要设计一个VPF数据库,其中最重要的一个部分就是从一个概念要素类模型到要素类表的实现。这个实现的核心涉及到要素类表和组成他们的基元表之间的关系。基于这样的设计,要素和基元之间的关系可以是一对一(1∶1),1对多(1∶n),多对1(n∶1)或多对多(n∶m)。

建立VPF的要素关系模型,需要分析要素与基元之间的对应关系,并在软件设计过程中进行描述。电子海图要求能够对海图数据进行良好的显示,并能进行各种地图操作,能够进行数据的分析查询。其中查询既要能够从图查询数据,又要支持从数据查询图形,所以,优化的要素关系模型的作用很重要。

VPF数据可以分为分块数据和不分块数据。在分块数据中需要考虑分块索引对基元的控制关系,这就增加了查询的复杂性,而不分块数据可以直接查询基元的ID来访问空间信息。VPF模型的设计都考虑到了从要素到基元的连接关系,称之为直接关联,根据从要素类表中读取到的TileID和PrimitiveID,可以直接从基元表中获取信息。

要素可以通过连结表对应多个基元记录,这即是所谓的多对一关系。在对于比较复杂的关系模型,例如多对多的情况时,为了更好地查询检索,改善用户的体验,需要使用多种方法。

(1)专题索引

通过对要素表中TileID和PrimitiveID增加专题索引。利用专题索引,可以为索引字段提供与之相关的记录集,这样就可以提高查询的效率。这种方式主要用于要素到基元的查询,是VPF优先提供的索引方式。

(2)要素ID指针

从基元查询要素类的连接关系不是VPF优先提供的,称之为非直接关联。如果没有外部关联文件,这种查询将通过遍历的方式来找到匹配的要素,效率很低。使用要素ID指针,在基元表中增加要素ID指针字段,来提高效率。这种方式存在一定的缺点,这种设计对于给定的基元要素带有多重要素类图层中的实现,将导致非规范化的基元表。

(3)要素索引

要素索引是对要素ID指针方式的一种改进,也是一种提高基元到要素查询性能的方式。这种外部的索引文件,消除了不规范的基元表,是最适合多要素类型图层的一种方法。

要实现最优化的要素关系模型,需要结合以上三种方法,其中后两种方法要根据要素类型的不同进行选择。这些外部文件是要素关系模型的必要补充,还可以对上述两种索引文件建立相关的索引,来进一步优化效率,但是这样也可以存在一定的效率抵消,要考虑这种情况。在解析VPF过程中,使用这些索引信息,将大大地提高查询的效率。

4实验应用及结论

在VC6.0的平台下对VPF数据进行解析,并实现了一个VPF数据向其他海图数据格式的转换系统。在系统设计过程中,按照地理关系数据库的层次关系建立对象,并对要素关系模型进行了详细设计,如图2。要素对象CGeoObject可以通过自身的基元索引来查找相关的几何信息,同时在基元信息中也保存了要素的索引,这些都是通过要素索引或者要素ID指针来获取的。

系统解析数据后的显示如图3所示。

国际标准电子海图的研究,是海洋GIS应用的重要前沿。由于各个国家采用的数据格式标准的不同,很难对数据进行统一的管理和应用,针对目前存在的主要问题和发展方向,本文着重对美国国防部VPF标准电子海图的主要问题,进行了应用研究和相关理论的探讨,完成了电子海图的数据组织、管理以及软件的设计和开发。对加快我国数字海图标准化建设具有重要的实用价值和现实意义。