admin管理员组

文章数量:1535871

2024年6月6日发(作者:)

万事开头难。

中国俗语

第六章 空间数据获取

导读:空间数据获取是地理信息系统建设首先要进行的任务,它可以有多种实现方

式包括数据转换、遥感数据处理以及数字测量等等,其中已有地图的数字化录入,

是目前被广泛采用的手段,也是最耗费人力资源的工作。在GIS中,录入的内容包

括空间信息和非空间信息,前者是录入的主体。目前,空间信息的录入主要有两种

方式,即手扶跟踪数字化和扫描矢量化,本章具体介绍了两种方式,以及相关的算

法,如曲线近似拟合,栅格图形细化跟踪等。

在图形数据录入完毕后,需要进行各种处理,包括坐标变换、拼接等等,其中最重

要的是建立拓扑关系。在拓扑建立过程中,需要先对各种错误修改,本章描述了各

种具体的错误情形,最后则介绍了多边形自动拓扑生成算法。

1.地图数字化

1.1概述

无论古代、现代还是将来,地图总是重要的信息形式。在计算机图形图像技术应用于地

图制作之前,各部门一般都使用纸质地图或工程图纸,纸图在查阅、计算距离和标注地名符

号等方面都是人工操作;另外不能对一幅纸地图进行修改、缩小比例和分层读图,至于地图

局部放大只能借助于放大镜,被放大的区域很小且操作不方便。

随着技术的发展,人们对地图的要求进一步提高。由于传统纸地图效率、速度和精度很

低,因此难以适应现代和未来科技发展。而通过GIS工具,可以把纸地图经过一系列处理而

转换成可以在屏幕上显示的电子化地图,可以满足人们使用地图的新的要求。为了讨论问题

方便,将矢量电子地图定义如下:

当纸地图经过计算机图形图像系统光——电转换量化为点阵数字图像,经图像处理和曲

线矢量化,或者直接进行手扶跟踪数字化后,生成可以为地理信息系统显示、修改、标注、

漫游、计算、管理和打印的矢量地图数据文件,这种与纸地图相对应的计算机数据文件称为

矢量化电子地图。这种地图工作时需要有应用软件和硬件系统的支撑。对矢量化地图的操作

是以人机交互方式,通过GIS应用软件对硬件设备的控制来实现的。

在硬件系统及相应的地理信息系统软件支持下,矢量电子地图与纸地图相比有如下优

点:

.计算距离和标注地名符号快速准确;

.可对地图局部放大、全图缩小和移动显示、漫游功能很强;

.分层显示地图(当对地图上各种信息分不同层归类存放后,则可以显示某些层,关闭

不显示的层);

.可以以图元为单位进行信息编缉修改,人机交互画线标注符号文字,删除地图上多余

的信息;

.可以通过计算机网络进行电子地图传递,提供信息共享,传递的速度快,保密性强;

.如果能有效解决地图符号自动分割和识别问题,则能实现地图的智能矢量化。这里智

能化是指自动矢量化和自动标注符号,最佳路径优化选择和自动跟踪目标等。

矢量电子地图与点阵地图图像相比有如下优点:

.相同信息量下前者的文件相对要小得多,图越复杂表现越明显;

.前者可以以图元为单位进行信息编缉修改删除,人机交互画线标注符号文字;后者只

能以像素为基本单位(如矩形图像块)进行拷贝,移动和删除,即它的编辑功能很差;

.前者可对所有图元分层显示,后者只能做到对整图某区域(矩形区)的开窗显示控制。

1.2地图数据类型

为地图自动制图目的所搜集的上述资料,要适应计算机处理的需要,必须同时考虑通过

这些资料,最后能获取各种不同性质的地图数据。

为此,可以定义地图数据是载荷地理信息的数字集合。它们应指被输入到某种计算机系

统中进行处理,必要时可重新生成人的视觉可以感受的地理信息。在这一层意义上,地图数

据可以分为:

1)空间数据(或图形数据)

空间数据是构成地图内容要素的几何图形,例如地图上的井、山峰、灯塔、河流、道路、

等值线、湖泊、森林界线和土壤类型界线等。为表示这些要素在二维平面上空间图形的定位

特征,常用一对平面直角坐标

X,Y

来表示,这种地图数据称为矢量数据;或用其通过栅

格单元的左下角坐标(行和列)来表示,称此为栅格数据。

地图要素图形大致可以分为点、线、面三种基本类型。

面——可由环绕它们的线表示;也可以由其区域内的点表示;

线——可离散化成为点的集合;

而点则能用一对平面坐标系中的坐标来确定。

在实际应用中,仅有坐标数据是不够的,必须依照不同地图要素的意义,通过特别的编

码加以区别。

2)语义数据(属性数据)

语义数据又称为非几何数据,包括定性数据和定量数据。定性数据用来描述要素的分类

或对要素进行标名。定量数据是说明要素的性质、特征或强度的,例如距离、面积、人口、

产量、收人、流速,以及温度和高程等.

对于语义数据,基本上是一个地理编码问题。以科学的分类分级系统为基础,对地理环

境中各基本实体及其联系进行编码,以便唯一地对某一系统中所有地图要素进行认别和处

理,这种功能不仅在用户环境中而且在计算机系统内也是十分重要的。

当前,要为满足各方面全部需求而建立一种通用的编码是不可能的。因此,最现实的是

研制多样性编码满足各部门的不同需要,同时兼顾符合建立数据库的规定。一般来说编码的

一些基本要求包括:

(2.1)要素类别——如地名,实体类型及等级等;

(2.2)要素特征(属性)——每一要素可具有与它有联系的大量的属性值,它承载关

于要素特征的信息;

(2.3)作用范围的描述——例如,一个区域的土壤类型;

(2.4)地理定义——在某些情况下编码可以是一个实体集合的间接参考,而集合中的

每一个实体也会被它自身的地理代码所说明,如水系、地质层的编码。

在GIS数据录入过程中,空间数据的录入更为重要,因为处理空间数据和空间信息正是

GIS的核心功能。与属性数据录入相比,空间数据录入的工作量更大,并且需要GIS软件工

具的支持(利用通用的数据库软件即可以进行属性数据录入)。

1.3数字化仪数字化

1.3.1手扶跟踪数字化

尽管手扶跟踪数字化(Manual Digitising)工作量非常繁重,但是它仍然是目前最为广

泛采用的将已有地图数字化的手段。

利用手扶跟踪数字化仪可以输入点地物、线地物以及多边形边界的坐标。其具体的输入

方式与地理信息系统软件的实现有关,另外一些GIS系统也支持用数字化仪输入非空间信

息,如等高线的高度,地物的编码数值等等。

手扶跟踪数字化仪的通讯和参数:

手扶跟踪数字化仪是通过RS-232(串口)接口与计算机进行连接的,为了能够进行正

确的数据发送和接收,需要进行通讯参数的设置,包括波特率、数据位、校验位、停止位等

等。此外,数字化仪还包括坐标原点、分辨率、采点方式、数据格式等参数。数字化仪的参

数通常可以利用数字化板上的开关和菜单确定。为了保证数据录入的正确,必须设置数字化

软件的参数与数字化仪的一致。

在进行数字化之前,首先要确定需要数字化哪些信息,在目前由于大多数GIS软件对

空间数据采用分层管理,所以要确定输入哪些图层,以及每个图层包含的具体内容。另外,

由于数字化过程不可能一次完成,在两次输入之间地图的位置可能相对于数字化板发生错

动,这样前后两次录入的坐标就会偏移或旋转。解决该问题的办法就是,在每次录入之前,

先输入至少三个定位点(Tick Marks),或称为注册点(Register Points),这些点相对于地图

的位置是固定的,这样两次输入的内容就可以根据定位点坐标之间的关系进行匹配。

通常,数字化仪采用两种数字化方式,即点方式(Point Mode)和流方式(Stream Mode),

点方式是当录入人员按下游标(Puck)的按键时,向计算机发送一个点的坐标。输入点状地物

要素时必须使用点输入方式;而线和多边形地物的录入可以使用点方式,在输入时,输入者

可以有选择地输入曲线上的采样点,而采样点必须能够反映曲线的特征。

流方式录入能够加快线或多边形地物的录入速度,在录入过程中,当录入人员沿着曲线

移动游标时,能够自动记录经过点的坐标。采用流方式录入曲线时,往往采集点的数目要多

于点方式,造成数据量过大,一个解决的方案是对记录的点进行实时采样,即尽管系统接收

到了点的坐标,但是可以根据采样原则确定是否记录该点

*

目前大多数系统采取两种采样原则,即距离流方式(Distance Stream)和时间流方式

(Time Stream)(图6-1)。

(a)(b)

图6-1:距离流方式和时间流方式

(a)距离流方式是当前接收的点与上一点距离超过一定阈值,才记录该点;

*

也可以在整个曲线录入完毕后,使用下面描述曲线离散化算法去掉一些非特征点。

(b)采用时间流方式时,按照一定时间间隔对接收的点进行采样。

采用时间流方式录入时,一个优点是当录入曲线比较平滑时,录入人员往往移动游标比

较快,这样记录点的数目少;而曲线比较弯曲时,游标移动较慢,记录点的数目就多。而采

用距离流方式时,容易遗漏曲线拐点,从而使曲线形状失真。所以在保证曲线的形状方面,

时间流方式要优于距离流方式。

在实际的录入过程中,可以根据不同的录入对象选择不同的录入方式。例如,当录入地

块图时,由于其边界多为直线,并且点的数据较少,可以采用点方式录入;录入交通线时,

因为要保证某些特征点位置的准确性,也可以使用点方式;而等高线的录入由于数据量大,

使用流方式可以加快录入速度。

其它的矢量数据录入方式:

尽管手扶跟踪数字化是目前最主要的矢量格式地理数据的录入手段,但是在某些场合

下,也可以采用其它的数据输入方式:

1)其它数据转换:

其它格式数据的转换包括三种情形:

(1.1)其它矢量格式数据(往往是由其它GIS软件制订)的转换;

(2.2)坐标数据,往往表现为关系数据库表的形式(表6-1);

(2.3)位置描述信息,以关系数据表形式存取,同样可以转换为不太精确的坐标数据

(表6-2)。

表6-1:测站信息表(部分)

测站编码 经度 纬度

68013344 107.2 29.8

68026785 115.5 30.2

表6-2:企业员工信息表(部分)

姓名 住址

张三 北京市海淀区

李四 河北省石家庄市

2)键盘录入:

对于数据量较小、并且已知地物精确坐标的情况下,可以采用键盘录入。此外键盘录入

也是录入属性数据的主要手段。

3)鼠标录入:

如果不愿意手扶跟踪数字化,而扫描矢量化又难以识别地物时,可以使用鼠标录入,通

常是将地图扫描后,作为底图显示在屏幕上,用鼠标参照底图进行采点。由于鼠标定位不如

数字化仪精确,所以一般用于输入一些示意图。

4)其它定点测量设备:

目前GPS已经成为流行的定位导航设备,它同样可以为GIS提供矢量格式的坐标数据。

其它的定点测量设备包括平板测图仪等,使用这些设备,最重要的是要考虑精度问题。

1.3.2曲线离散化算法

在数字化过程中,需要对曲线进行采样简化,即在曲线上取有限个点,将其变为折线,

并且能够在一定程度上保持原有的形状。下面介绍Douglas-Peucker算法(图6-2)。

1)在曲线首尾两点A

B之间连接一条直线段AB,该直线称为曲线的弦;

2)得到曲线上离该直线段距离最大的点C,并计算其与AB的距离d;

3)比较该距离与预先给定阈值

ε

的大小,如果小于

ε

,则将该直线段作为曲线的近似,

该段曲线处理完毕;

4)如果距离大于阈值,则用C将曲线分为两段AC和BC,并分别对两段曲线进行1-3

步的处理。

5)当所有曲线都处理完毕后,依次连接各个分割点形成的折线,即可以作为曲线的近

似。

很明显,该算法是一个递归算法。

(a)

B

(b)

d

A

C

(c)(d)

(e)

(f)

图6-2:曲线的离散算法

1.4扫描矢量化及常用算法

1.4.1扫描矢量化以及处理流程

随着计算机软件和硬件更加便宜,并且提供了更多的功能,空间数据获取成本成为GIS

项目中最主要的成分。由于手扶跟踪数字化需要大量的人工操作,使得它成为以数字为主体

的应用项目瓶颈。扫描技术的出现无疑为空间数据录入提供了有力的工具。

常见的地图扫描处理的过程如图6-3所示。由于扫描仪扫描幅面一般小于地图幅面,因

此大的纸地图需先分块扫描,然后进行相邻图对接;当显示终端分辨率及内存有限时,拼接

后的数字地图还要裁剪成若干个归一化矩形块,对每个矩形块进行矢量化(Vectorization)

处理后生成便于编辑处理的矢量地图,最后把这些矢量化的矩形图块合成为一个完整的矢量

电子地图,并进行修改、标注、计算和漫游等编辑处理。

纸地图扫描转换拼接子图块裁剪地图

矢量图编辑矢量图合成图像处理矢量化

图6-3:地图信息处理流程图

在扫描后处理中,需要进行栅格转矢量的运算,一般称为扫描矢量化过程。扫描矢量化

可以自动进行,但是扫描地图中包含多种信息,系统难以自动识别分辨(例如,在一幅地形

图中,有等高线、道路、河流等多种线地物,尽管不同地物有不同的线型、颜色,但是对于

计算机系统而言,仍然难以对它们进行自动区分),这使得完全自动矢量化的结果不那么“可

靠”,所以在实际应用中,常常采用交互跟踪矢量化,或者称为半自动矢量化。

将栅格图像转换为矢量地图一般需要以下一系列步骤[Musavi 1988]:

1)图像二值化(Threshold)

图像二值化用于从原始扫描图像计算得到黑白二值图像(Binary Image),通常将图像上

的白色区域的栅格点赋值为0;而黑色区域为1,黑色区域对应了要矢量化提取的地物,又

称为前景。

2)平滑(Smooth)

图像平滑用于去除图像中的随机噪声,通常表现为斑点。

3)细化

细化将一条线细化为只有一个像素宽,细化是矢量化过程中的重要步骤,也是矢量化的

基础。

4)链式编码

链式编码将细化后的图像转换成为点链的集合,其中每个点链对应于一条弧段。

5)矢量线提取

将每个点链转化成为一条矢量线。每条线由一系列点组成,点的数目取决于线的弯曲程

度和要求的精度。

除了上述五个步骤以外,还需要一些处理以方便图像矢量化过程,如图像拼接和剪裁等

等,下面对这些操作以及相关算法进行描述。

1.4.2图像拼接/裁剪

1)图像拼接

以两相邻地图图像的部分重叠区为基础,把它们合成为一幅整图的过程叫做图像拼接,

分上下拼接和左右拼接。以左右拼接为例,取左图右边缘一个矩形区域A,取右图左边缘一

个矩形区域B,如果A和B有一定的重叠区,可以利用计算机实现自动的匹配,其拼接算法

如下:

(1.1)由A中右侧边缘从右至左依次取若干个列L1(O),L1(1),…,L1(n),以

各列内像素灰度的长度序列为特征向量,分别求出以上各列的特征向量V1

O

),

V1

1

),

V1

n

(2.2)自动拼接 即由B中左侧从左至右依次取若干列L2(n),L2(n-1),…,L2(O),

以各列内像素灰度的长度序列为特征向量,分别求出以上各列的特征向量V2

n

):

V2

n-1

),

V2

O

。若向量序列[V1

O

);

V1

1

,

…,

V1

n

)]

和[V2

O

),

V2

1

),…,

V2

n

)]

匹配,则转向步骤4。

(2.3)人工拼接 即固定A,通过人机交互控制B以一定步长上下左右移动,直到A

和B重叠区对齐为止。

(2.4)根据步骤2匹配情况或步骤3的偏移情况对两相邻地图图像进行修正和合成。

2)图像裁剪

把一幅图像裁成两两相邻的规则图块的过程称为地图裁剪。图像裁剪非常简单,实际应

用中,可以根据不同的硬件配置确定采用和不采用图像裁剪技术。

1.4.3 图像细化预处理二值图像平滑

在将地图扫描或摄像输入时,由于线不光滑以及扫描、摄像系统分辨率的限制,使得一

些曲线目标带来多余的小分支(即毛刺噪声);此外,还有孔洞和凹陷噪声,如图6-4所示。

如果不在细化前去除这几种噪声,就会造成细化误差和失真,这样会最终影响地图跟踪和矢

量化。曲线目标越宽,提取骨架和去除轮廓所需的次数也越多,因此噪声影响也越大。

图6-4:扫描图像的“毛刺”和“凹陷孔洞”

为了去除毛刺噪声的影响,可以采用如图5所示的3×3模板进行处理。处理的过程是:

0

按点阵格式扫描图像上每一像素,只要图像相应区域与图6-5中的模板(包括其三次90旋

转所形成的模板)匹配,则判定为毛刺,对应于模板中心的像素数值变为O。根据需要可进

行多次这种匹配运算。

0 0 0

0 1 0

Ⅹ Ⅹ Ⅹ

图6-5:去毛刺模板,X为任意数值

为了去除孔洞及凹陷噪声,我们采用如图6-6所示的模板进行处理,只要图像对应区域

O

与该模板(包括其三次90旋转)匹配,则区域中心点数值变为1。

X 1 X

1 0 1

Ⅹ Ⅹ Ⅹ

图6-6:去孔洞凹陷模板

总之,通过以上两种平滑处理,基本上消除了毛刺和孔洞凹陷噪声的影响,为进一步进

行细化处理打下了基础。

1.4.4图像细化(Thinning)

细化算法对二值图像进行处理,得到细化后的图像。线细化是处理包含线状地物二值图

像的一种重要技术,在地图扫描处理中,由于地图上主要信息是不同粗细和不同形状的线,

必须首先进行线细化,以准确、有效地提取这些线信息,并进一步完成跟踪矢量化。

线细化,就是不断去除曲线上不影响连通性的轮廓像素的过程,对细化的一般要求是:

l 保证细化后曲线的连通性

l 细化结果是原曲线的中心线

l 保留细线端点

根据各种不同的应用,目前已经提出了许多线细化算法,如内接圆法、经典算法、异步算法、

快速并行算法及并行八边算法等,不同的算法在处理速度和效果上各有其特点。

下面介绍一个常用的细化算法,其它算法基本是此算法的改进。

首先介绍几个相关的概念和符号。对于二值栅格图像中每个像素点p,以及该像素直接

相邻的8个像素点(图6-7),令:

p

图6-7:像素周围的8个直接相邻像素

1)N(p)为p的邻点的数值的和;

2)图像像素联接数T(p),如果旋转着看像素周围的点,T(p)就是p周围8个点从0变

成1的次数,它反映了像素邻点的联接的块数(图6-8)。

3)p

W

,p

E

,p

S

,p

N

分别指像素左侧、右侧、下边、上边邻点的数值。

1

(a)T=0

1

1

1

1

1

(d)T=1

1

1

1

1

1

(g)T=2

1

1

1

1

1

1

1

1

1

1

1

(b)T=0

1

1

1

(e)T=2

1

1

(h)T=3

1

1

1

1

1

1

1

1

(c)T=1

1

(f)T=2

1

(i)T=4

1

1

1

1

图6-8:像素联结数

算法步骤如下[Zhang-Suen,1984]:

1:对于栅格图像中的每个点p,进行如下操作:

如果2≤N(p)≤6并且T(p)=1并且p

N

p

S

p

E

=0并且p

W

p

E

p

S

=0

则标志p点;

2:将所有被标志的栅格点赋值为0,如果没有被标志的点,则算法结束;

3:对于栅格图像中的每个点p,进行如下操作:

如果2≤N(p)≤6并且T(p)=1并且p

N

p

S

p

W

=0并且p

W

p

E

p

N

=0

则标志p点;

4:将所有被标志的栅格点赋值为0,如果没有被标志的点,则算法结束;

5:转到第一步。

图6-9显示了采用该算法细化的过程和结果。

图6-9:线状地物的细化

1.4.5链码(弗里曼码)

链码是由弗里曼(Freeman)提出的用曲线出发点坐标和线的斜率来描述二值线图形的

一种方法。图6-10(a)所示是链码的八个方向及它们的序号。图6-10(b)的细线的链码

为(3,0)21100066567,其中(3,0)为起始点坐标,之后的数值序列描述了方向。

任意一条细线都可用链码序列表示为下式:

C

a

1

a

2

...a

n

0

a

i

7

如果始点a1和终点an重合,则说明曲线是闭合的。

0

321

1

2

4p0

3

4

567

5

(a)(b)

图6-10:链码及其对细线的表示

(a):链码的8个方向;(b)细线

1.4.5矢量线生成

扫描矢量化的最后一步是生成矢量线,可以很方便地将链式编码的每一条链转换成为一

条矢量线。自然地,弯曲的矢量线比直线需要更多的点,这还取决于要求的精度。在矢量线

生成过程中,可以使用Douglas-Peucher算法。

目前,自动扫描矢量化还不是完全可靠的,为了提高其可靠性,需要在模式识别方面做

出更多的研究。

2.空间数据录入后的处理

2.1图形坐标变换

在地图录入完毕后,经常需要进行投影变换,得到经纬度参照系下的地图。对各种投影

进行坐标变换的原因主要是输入时地图是一种投影,而输出的地图产物是另外一种投影。进

行投影变换有两种方式,一种是利用多项式拟合,类似于图像几何纠正;另一种是直接应用

投影变换公式进行变换。

2.1.2基本坐标变换

在投影变换过程中,有以下三种基本的操作:平移、旋转和缩放。

1)平移

平移是将图形的一部分或者整体移动到笛卡尔坐标系中另外的位置(图6-11-a),其变

换公式如下:

X’=X+T

x

Y’=Y+T

y

2)缩放

缩放操作可以用于输出大小不同的图形(图6-11-b),其公式为:

X’=XS

x

Y’=YS

y

3)旋转

在地图投影变换中,经常要应用旋转操作(图6-11-c),实现旋转操作要用到三角函数,

*

假定顺时针旋转角度为θ,其公式为:

X’=Xcos

θ

+Ysin

θ

Y’=-Xsin

θ

+Ycos

θ

X

方向

Y

方向

(a)平移

*

公式同“空间参照系统和地图投影”一章的坐标旋转公式,顺时针旋转图形相当于逆时针旋转坐标系。

(b)缩放

(c)图形旋转

图6-11:图形坐标变换

2.1.2仿射变换(Affine Tranformation)

如果综合考虑图形的平移、旋转和缩放,则其坐标变换式如下:

cosθ

(X',Y')=λ

−sinθ

sinθ



X

T

X

+



cosθ



Y



T

Y

上式是一个正交变换,其更为一般的形式是:

ab



X

T

X

(X',Y')=λ



Y

+

T

cd



Y

后者被称为二维的仿射变换(Affine Transformation),仿射变换在不同的方向可以有不

同的压缩和扩张,可以将球变为椭球,将正方形变为平行四边形(图6-12)。

图6-12:仿射变换

2.2图形拼接

在对底图进行数字化以后,由于图幅比较大或者使用小型数字化仪时,难以将研究区域

的底图以整幅的形式来完成,这是需要将整个图幅划分成几部分分别输入。在所有部分都输

入完毕并进行拼接时,常常会有边界不一致的情况,需要进行边缘匹配处理(图6-13)。边

缘匹配处理,类似于下面提及的悬挂节点处理,可以由计算机自动完成,或者辅助以手工半

自动完成。

除了图幅尺寸的原因,在GIS实际应用中,由于经常要输入标准分幅的地形图,也需

要在输入后进行拼接处理,这时,一般需要先进行投影变换,通常的做法是从地形图使用的

高斯——克吕格投影转换到经纬度坐标系中,然后再进行拼接。

(a)

(b)

(c)

图6-13:图幅拼接

(a)拼接前;(b)拼接中的边缘不匹配;(c)调整后的拼接结果

2.3拓扑生成

在图形数字化——无论是手扶跟踪数字化还是扫描矢量化——完成后,对于大多数地图

需要建立拓扑,以正确判别地物之间的拓扑关系。在GIS数据管理中,拓扑关系可以定义

以下内容:

1)区域,如果多边形数据DIME数据模型,每个多边形可以用一组封闭的线

*

来表示,

而不需要记录封闭线上的所有点,避免两次记录相邻多边形的公共边界,这样减少了数据冗

*

余。

*

*

通常称为弧段

与DIME数据模型相对应的是Spaghetti多边形编码方式,该编码方式对每个多边形都依次记录其边界上

2)邻接性,另一种可以用拓扑描述的属性是多边形之间的相互邻接性。

3)连通性,连通性是指对弧段连接的判别,连通性的建立和表现是网络分析的基础。

2.3.1图形修改

在建立拓扑关系的过程中,一些在数字化输入过程中的错误需要被改正,否则,建立的

拓扑关系将不能正确地反映地物之间的关系。

ESRI定义了以下判断录入图形是否正确的六个准则,可以帮助发现拓扑错误。

1)所有录入的实体都能够表现出来;

2)没有输入额外的实体;

3)所有的实体都在正确的位置上,并且其形状和大小正确;

4)所有具有连接关系的实体都已经连上;

5)所有的多边形都有且只有一个标志点以识别它们;

6)所有的实体都在边界之内

上述的准则,特别是第五和第六条,只是针对ESRI的ARC/INFO软件而言,其它的

GIS软件由于具体实现的不同,可能会有差异。

由于地图数字化,特别是手扶跟踪数字化,是一件耗时、烦杂的人力劳动,在数字化过

程中的错误几乎是不可避免的,造成数字化错误的具体原因包括:

1)遗漏某些实体;

2)某些实体重复录入,由于地图信息是二维分布的,并且信息量一般很大,所以要准

确记录哪些实体已经录入,哪些实体尚未录入是困难的,这就容易造成重复录入和遗漏;

3)定位的不准确,数字化仪分辨率可以造成定位误差,但是人的因素是位置不准确的

主要原因,如手扶跟踪数字化过程中手的抖动,两次录入之间图纸的移动都可以使位置不准

确;更重要的,在手扶跟踪数字化过程中,难以实现完全精确的定位,例如在水系的录入中

(图6-14),将支流的终点恰好录入在干流上基本上是不可能的(图6-14-a),更常见的是图

(b)和(c)所示的两种情况。

(b)

不及

(a)

实际地物

(c)

过头

图6-14:数字化错误——不及和过头

在数字化后的地图上,错误的具体表现形式有:

1)伪节点(Pseudo Node),伪节点使一条完整的线变成两段(图15),造成伪节点的

原因常常是没有一次录入完毕一条线。

的顶点,显然公共边界被记录了两次。Spaghetti的意思是意大利细面条,用来形象的比喻这种数据结构。

伪节点

图6-15:伪节点

2)悬挂节点(Dangling Node),如果一个节点只与一条线相连接,那么该节点称为悬

挂节点,悬挂节点有多边形不封闭(图6-16-a)、不及和过头(图6-14-b,图6-14-c),节点

不重合(图6-16-b)等几种情形。

(a)多边形不封闭 (b)节点不重合

图6-16:悬挂节点的两种情形

3)“碎屑”多边形或“条带”多边形(Sliver Polygon)

条带多边形(图6-17)一般由于重复录入引起,由于前后两次录入同一条线的位置不

可能完全一致,造成了“碎屑”多边形。另外,由于用不同比例尺的地图进行数据更新,也

可能产生“碎屑”多边形。

图6-17:碎屑多边形

4)不正规的多边形(Weird Polygon)

不正规的多边形(图6-18)是由于输入线时,点的次序倒置或者位置不准确引起的。

在进行拓扑生成时,同样会产生“碎屑”多边形。

(a)

正常多边形

(b)

不正规多边形

图6-18:不正规的多边形

上述的错误,一般会在建立拓扑的过程中发现,需要进行编辑修改。一些错误,如悬挂

节点,可以在编辑的同时,由软件自动修改,通常的实现办法是设置一个“捕获距离”,当

节点之间、或者节点与线之间的距离小于此数值后,即自动连接;而另外的错误需要进行手

工编辑修改。

2.3.2建立拓扑关系

在图形修改完毕之后,就意味着可以建立正确的拓扑关系,拓扑关系可以由计算机自动

生成,目前大多数GIS软件也都提供了完善的拓扑功能;但是在某些情况下,需要对计算

机创建的拓扑关系进行手工修改,典型的例子是网络连通性。

正如拓扑的定义所描述的,建立拓扑关系时只需要关注实体之间的连接、相邻关系,而

节点的位置、弧段的具体形状等非拓扑属性则不影响拓扑的建立过程。

1)多边形拓扑关系的建立

如果使用DIME或者类似的编码模型,多边形拓扑关系的表达需要描述以下实体之间的

关系:

l 多边形的组成弧段;

l 弧段左右两侧的多边形,弧段两端的节点;

l 节点相连的弧段。

多边形拓扑的建立过程实际上就是确定上述的关系。具体的拓扑建立过程与数据结构有

关,但是其基本原理是一致的,下面简述多边形拓扑建立过程(图6-19)。

图6-19中共有4个节点,以A、B、C、D表示;6条弧段,用数字表示;以及I、II、

III三个多边形(图6-19-a)。首先定义以下概念:

l 由于弧段是有方向的,算法中将弧段A的起始节点称为首节点N

s

(A),而终止节点

为尾节点N

E

(A);

l 考虑到弧段的方向性,沿弧段前进方向,将其相邻的多边形分别定义为左多边形和

右多边形P

L

(A)和P

R

(A)。

在建立拓扑之前,首先将所有弧段的左右多边形(在实现中,可以用多边形的编码表示)

都设置为空;然后对每个节点计算与其相连弧段的在连接处的角度,并进行排序(图6-19-b)

(注意,这个排序是循环的)。建立拓扑的算法如下:

(1)得到第一条弧段A,并设置为当前弧段;

(2)判断P

L

(A)和P

R

(A)是否为空。如果都非空,转到第一步,当所有弧段处理完毕后,

算法结束;

(3)如果左多边形为空,则创建一个新的多边形P,多边形的第一条弧段为当前弧段,

并设置P

L

(A)=P,设置搜寻起始节点为N

s

(A),搜寻当前节点为N

E

(A)。如果右多边形为空,

则创建一个新的多边形P,多边形的第一条弧段为当前弧段,并设置P

R

(A)=P,设置搜寻起

始节点N

0

=N

E

(A),搜寻当前节点N

C

=N

S

(A)。

(4)判断N

0

和N

C

是否相等,如果是,则多边形所有弧段都已经找到,转到第一步。

(5)检查与当前节点相连接的、已经排列好的弧段序列,将当前弧段的下一条弧段A'

作为多边形的第二条弧段。

(6)如果N

C

=N

S

(A'),设置P

L

(A')=P,N

C

=N

E

(A);如果N

C

= N

E

(A'),设置P

R

(A')=P,

N

C

=N

S

(A),转到第四步。

如图6-19-c所示,如果从弧段4开始搜寻,找到节点C后,根据弧段的排序,下一条

弧段是2;然后找到节点A,弧段1,整个搜寻结束,建立多边形I,其组成弧段为4、2、1。

按照这种算法,生成多边形的弧段从多边形内部看,是逆时针排列的。如果节点弧段排

序为顺时针,则算法中用P

L

(A)代替P

R

(A),用P

R

(A)代替P

L

(A),生成的多边形弧段是顺时

针排列的。

A

1

I

4

B

III

C

6

(a)

A

1

I

4

B

C

2

2

5

D

II

3

A 3 2 1

B 4 6 1

C 2 5 4

D 3 6 5

节点表,其中对于每

个节点记录了顺时针

方向排序的相连的弧

(b)

5

(c)

图6-19:多边形拓扑的建立过程

多边形拓扑的建立,要注意多边形带“岛”的情况,按照上述算法,对于带“岛”的多

边形,或者称为环,其包含的弧段构成了多个闭合曲线,并且“岛”的弧段排序是顺时针的

(图6-20)(实际上,从环状多边形内部看,它仍然是逆时针的)。

图6-20:带“岛”的多边形建立拓扑的结果。

2)网络拓扑关系的建立

在输入道路、水系、管网、通信线路等信息时,为了进行流量以及连通性分析,需要确

定线实体之间的连接关系。网络拓扑关系的建立包括确定节点与连接线之间的关系,这个工

作可以由计算机自动完成,但是在一些情况中,如道路交通应用中,一些道路虽然在平面上

相交,但是实际上并不连通,如立交桥,这是需要手工修改,将连通的节点删除(图6-21)。

图6-21:节点的编辑,将实际不连通的线路形成的节点删除

本文标签: 地图进行录入