免费文献传递   相关文献

Study on the Convert of Polygon Raster Data to Vecter Data in WINGIS

WINGIS面状图栅格数据向矢量数据转换方法研究



全 文 :第 7 卷 第 6 期
1 9 9 4 年 1 2 月
林 业 科 学 研 究
FO R E ST R E S E A R C H
V o l
.
7
,
N o
.
6
【)e e . , 1 9 9 4
W IN G IS 面状图栅格数据向
矢量数据转换方法研究
李应国 高显连 田永林
摘要 通过对栅格数据结构的分析 , 采用在栅格点间插 入边 界点 , 将栅格数据转换成边界点栅
格数据 , 边界点的取值非 。即 1 。 且其最大的方向数为 4 ;根据边界点的方向数 , 设置搜索成线过程
的起点和终点 , 搜索成线过程沿着方向数为 2 的边界点方向进行 ;完成搜索成线后 , 对线进行多余
点处理及圆滑处理 ; 然后进行多边形及其标志点的生成 , 建立面状图的拓扑关系并回填属性值 , 从
而完成了包含拓扑关系及其属性的栅格向矢量数据转换 。
关链词 G IS (地理信息系统 ) 、栅格数据 、矢量数据
地理信息系统 (G IS )是利用计算机进行空间数据及属性数据管理的信息系统 , 广泛应用
于与地理信息有关的国民经济的各个部门 (如农 、林 、牧 、水保 、城市规划等 ) , 是进行资源管理 、
规划设计 、 数据更新等现代化的手段之一 。 W IN G IS 是一通用地理信息系统 , 该系统充分利用
计算机资源 , 采用面向对象的程序设计技术 (O O P ) , 基于国际上流行的 w IN D O W S 环境 , 具
有界面友好 、运行速度快 、操作简单等特点 。 本文介绍 W IN G IS 系统中栅格数据向矢量数据转
换技术 。
1 栅格数据与矢量数据
栅格数据与矢量数据是地理信息系统中采用的两种基本数据类型 , 空间数据的输入通常
采用其中的一种 ,但在系统整个处理过程中 , 两者均经常用到 。如在建立数字地形模型时 , 通常
将矢量的地形数据转换为栅格数据 , 而用栅格地形数据形成的坡度 , 坡 向数据 , 又经常需要转
换为矢量数据 。 两者间的相互转换有时是必需的 , 有时是为简化或加快数据处理过程 , 因而栅
格与矢量数据相互转换技术是地理信息系统所必备的能力之一 。就技术方法而言 , 矢量数据转
换为栅格数据已有很多成熟的算法 , 本文不再讨论 。
栅格数据是以规则的阵列来表示所研究对象的一种数据类型 , 常用来表示面状图 。在这种
数据类型中 , 点 (象元 )的位置是由其所在阵列的行和列隐含表示的 , 点的属性则由点所在位置
的象元取值来表示 , 面状对象的位置由一片相邻的象元的位置集合表示 , 面上的每一点至少有
两个相邻的点 , 面的属性则由面上点的取值来表示 , 由于象元是有一定大小的 , 因而栅格数据
所表示的面状对象是不连续的 、其边缘是锯齿形状的 , 同一对象的全部象元的存储位置并不总
在一起 , 因而无法对单个对象进行处理 ;矢量数据则是直接记录所研究对象的坐标和其属性值
的一数据类型 , 常用来表示点 、线或面状对象 , 在矢量数据类型中 , 点 、线和面的属性由其属性
1 9 9 4一 0 7 一 0 5 收稿 。
李应国助理研究员 , 高显连 , 田永林 (中国林业科学研究院资源信息研究所 北京 10 0 0 91 ) 。
6 期 李应国等 : W IN G IS 面状图栅格数据向矢量数据转换方法研究
值表示 , 点的位置是 由其坐标直接表示的 , 而线上一系列的点 (这些点的位置通常是按一定顺
序排列的)的坐标表示了线的空间位置 , 面的空间位置则由围成面的封闭边界的全部线来表
示 。 另外 , 在矢量数据类型中 , 点是没有大小的 , 因而这种数据类型所表示的对象是圆滑的 。 两
种数据类型对点 、线及面状对象的表示方法见图 1 。
由两种数据类型的比较可知 , 面状对象的栅
格数据向矢量数据转换应满足 3 个条件 : A : 空间
位置关系的转换 , 即将面状对象边缘象元的行列
号值转换为相应的点的坐标值 , 并建立点之间的
邻接关系 , 从而形成线 ; B : 拓扑关系的形成 , 即确
定面 (多边形 )是 由哪些线闭合而成的 ; C : 属性关
系 , 即标定矢量数据表示的面的属性 。
{
一L
.
‘几恻
山 , 人 ! .七女、 、, 日 i汀)及 姗格数据 (后 、 、注点 , 火 义
面状对象的表示方法
2 边界点数据的形成
假设有一 M 行 N 列的栅格数据 D (M , N )
昆Q( ,^B) 纽图 2 栅格数据 D 图 3 每个象元周围
的八个边界点
, 在 D 中有彼此相邻的 9 个栅格点 A 一 I (图
2 )
, 每个栅格点 的属性值分别 为 V (A )一 V
( I )
, 两相邻栅格点的属性值之差为 S , 假定
S = O (有时 S 知 ) , 当 V (A )一V (B ) = S 时 , 栅
格 .点 A 和 B 属于同一研究对象 (线或面) ;反
之 , 当 V (A )一V (B )招 时 , 栅格点 A 和 B 不
属于同一研 究对象 (线或面 ) , 那么栅格点 A
和 B (有一定大小 )之间必有一边界点 Q (A ,
B )( 该点没有大小 )把栅格点 A 和 B 分开 , 假
定 A 的属性值 V (A )与它周围的其它 8 个栅
格点的属性值之差都不等于 S , 栅格点 A 周 围必有 8 个边界点 (图 3 ) , 由于栅格点 A 有一定的
长 (L )和宽 (W ) , 因而栅格点 A 可以看作是 由 8 个边界点围成的多边形 ; 在多边形的边界上 ,
两相邻边界点之间的距离等于 L /2 , 或 W /2 ;这样 , 栅格数据 D (M , N )的全部栅格点的最多的
边界点数为(2 M + 1 )(2 N + l) 一MN , 为讨论方便 , 假定最外缘的边界点仍有 8 个边界点 , 这些
边界点形成了另外一栅格阵列 U (2 M + 1 , ZN + 1 )( 图 4 ) , 在栅格数据 U 中 , 行列号同为单数
(起始行列号都为 0) 的栅格点不是边界点 。 因此上述过程可看作这 样一数据变换 , 即 D (M ,
N ) = 今> U (ZM + 1 , ZN + l ) 。
3 边界点的取值与方向数
事实上 , 在栅格数据 U (2 M + 1 , ZN + l) 中 , 上述的边界点并非全部是真正的边界点 , 如图
2 中 , 当 v (A )一 v (B ) ~ S 时 , 栅格点 A 和 B 属于同一研究对象 (线或面) , 栅格点 A 和 B 之间
没有边界点 Q (A , B ) , 为了区分 一边界点是否真正的边界点 , 可以给该边界点取不同的属性
值 , 即当一边界点是真正的边界点 (下面提到的边界点都为真正的边界点 )时 , 令其属性值为
1
, 否则为 O , 这样栅格数据 U (2 M + 1 , ZN + l) 的属性值 只为 1 或 O , 在实际实现时 , 可用一个
位来表示一个栅格点的属性值 , 栅格数据 U 共占存储空间「(2 M + 1 ) (ZN + 1 ) / 8〕个字节 。因而
林 业 科 学 研 究 7 卷
尽管 D (M , N = 共乡. U (ZM + 1 , ZN + l )的过程中 , 数据量增加了 4 倍 [ (ZM + l) (ZN + 1 ) / MN ]
多 , 实际所需要的存储空间要小得多 , 假如栅格数据 D (M , N )的属性值用一个字节表示 , D 共
占存储空间 材N 个字节 , 即 (M , N )一 气> N (ZM + 1 , ZN 十 1) 的过程中 , 数据量压缩 了近 50 % 。
由于在搜索成线时 , 只处理边界点数据 , 总的处理数据量减少了 50 % 。
在栅格数据 U (2 M + l , ZN + l) 中 , 一边界点必和其它的边界点相连同 , 和一边界点相连
同的其它边界点的总数称为该边界点的方向数 , 当 U 没有经过栅格矢量数据转换时 , 边界点
的方 向数的最大值为 4 , 最小值为 2( 图 5 ) , 点 A 的方向数为 4 , 点 E 的方向数为 3 , 点 C 的方向
数为 2 , 各点方 向数均不为 1 , 说明由全部相邻边界点围成的多边形都是封闭的 。
. U
肠目 目 目日 .J 七
〕 t〕 (j (
~ 口、 , , , 户, 尸 , 护, 尸
J 以 ‘曰 目 L J 目 ‘
1 (〕 〔〕 〔
~
, 尸、 -叫 , 口户、 . r ~ 口、 于
J U LJ 口 LJ I, J L
」 (〕 〔〕 〔
~ 口 n . 户 , ~
~
, 口 . 七 r
J 以 U LJ U U 以 亡
〕 t
〕 C
, 乃 曰 n 自 门 八 r
图 4 边 界点队 列 图 5 边界点的方 向数 图 6 边界点构成岛
4 边界线的形成
将边界点按顺序连接便形成线 , 将线上每点的行列值 (或转换为相应的坐标值 )以矢量数
据记录下来 , 便形成一条线的矢量数据 , 这一过程是通过对边界点的搜索来完成的 。
4. 1 线的起始点和终点的确定
一边界点能否作为线的起始点 (或终点)是由其方向数决定的 , 在搜索成线的过程中 , 应保
持线的完整性 , 不能使一条线断开 。 由图 5 可知 , 当一边界点的方向数为 3 或 4 时 , 该点必为多
条线的交点 (即结点 ) , 如图 5 中的点 A (方 向数为 4) 或点 E (方向数为 3 ) , 因而该点必为线的
起始点 (或终点 ) ;方向数为 2 的边界点一般不能作为线的起 始点 (或终点 ) , 如图 5 中的 C (或
B
,
D )点 , 因为它将使一完整的线 A BC D E 断为两条 (A BC 和 C D E ) , 但当边界点围成一封闭的
环线 (即岛)时 (图 6 ) , 环线上的每一边界点的方向数都为 2 , 此时 , 每边界点都可以作为线的起
始点 ,但不能作为线的终点 ; 由于在搜索过程中 , 边界点的方向数将不断减少 (后面将会看到 ) ,
因此在搜索过程的最后 , 必然出现方向数为 1 的边界点 , 此时这类边界点也作为线的起始点
(或终点 ) 。为了提高搜索成线的效率和速度 , 应首先对方向数为 4 或 3 的边界点作为起始点进
行搜索成线 ;接下来以方向数为 1 的边界点作为起始点进行搜索 ;最后以方向数为 2 的边界点
作为起始点进行搜索 , 当遇到方向数不为 2 的边界点或遇到和起始点相同的边界点时 , 便结束
该线 。
4. 2 线的搜索方向
当线的起始点确定后 , 应首先循环判断和起始点相连通的其它边界点的方向数 , 当遇到方
向数为 2 的边界点 (最少有一个这样的边界点)时 , 搜索点就从起始点移至该点 , 然后再从该点
周围找出方向数为 2 且不是上一搜索点的边界点 , 如此下去 , 直至遇到线的终点 。 在搜索成线
的过程中 , 方向数为 2 的边界点(如图 5 中 B, C, D )只可能在一条线上 , 当搜索过程经过该点
后 , 该点将不再是边界点 , 即它的属性值将由 1 变为 O , 和该点相连通的其它边界点的方向数
6 期 李应国等 : W IN G IS 面状图栅格数据向矢量数据转换方法研究
将减少 1 , 因此 , 随着搜索的进行 , 边界点数越来越少 , 边界点的方向数将不断减少 。
5 边界线的处理
搜索成线是逐个栅格点进行的 , 由此形成的以矢量数据表示的线有两个问题 : (1) 有许多
点在同一直线上 , 如图 5 中的线 A BC D E , 因而应进行多余点的删除 ; (2 )如果线有折点 , 其必
然成直角形状 , 这样的线形同样造成了数据冗余 , 且视觉效果很不理想 , 必须进行圆滑处理 。
5. 1 多余点的删除
多余点的删除是基于这一思想 :设有连续的 3 点 A (x 口 , y a) , B (x b , y b ) , C (xc , y : ) , 当中间
的 B 点位于由 A 点和 C 点所构成的直线上时 , 即当 (y a 一神 ) / (x a 一 x b) ~ (勿 一yc )/ (x b一xc )
时 , B 点应删除 , 否则 B 点保留 。 为防止分母为零的错误 , 上式应写为 : (ya 一 y b) (x b一 x ‘ ) -
(x
a 一 x b ) (y b一yc ) 。
5
.
2 线的圆滑处理
如图 7 , D A E 中的点 A 为一直角折点 , D A , E A 分另lj为一栅格点的长和宽 , 在 1 /2 D A 处加
进一点 B , 在 1 /2 E A 处加进一点 C , 然后删除 A 点 , 此时线 D A E 变为线 D BC E , 直角折点 D A E
变为两个 1 3 50 的折点 。 对全部直角折点进行上述处理后 , 便形成一系列的 1 3 5 “的折点 , 此时线
形仍不够 圆滑 。 因而在 1/2 D B 处 , 加进一点 H , 在 1/ ZB C 处加进一点 I , 在 1 /2 C E 处加进一点
K
, 然后删除 B , C 点 , 此时线 D BC E 变为线 D H IK E , 折点角度变得更大 , 比较圆滑 自然 。为保证
面状图拓扑关系不受破坏 , 园圆处理应保证起点及终点的位置不能有任何变动 , 同时为进一步
减小冗余度 , 应再次进行多余点的删除处理 。由于边界点数据每个栅格点的长和宽只是原始数
据栅格点的长和宽的一半 , 因此线的圆滑处理造成的误差不会超过一个象元 。至此已将栅格数
据面的边界线转换成了以矢量数据表示的线 。
D ^习 E 竺今 ‘) 中“! 七丹 减
1 饭) J丫 ) 、,比 lE
}划 了 线的圆 滑处理
6 拓扑关系的建立与属性值的回填
经过上述步骤 , 仅仅形成 了矢量的线 , 而面状 图的拓扑关 系及其属性值并未转换 , 在
W IN G IS 中 , 面状图的拓扑关系的建立是通过对上述的线 (或进行过编辑修改的线 )进行多边
形生成来完成的 。
6
.
1 多边形拓扑关系的建笼及标志点的形成
即确定一多边形是由哪些线 , 以怎样的位置关系来构成的 。 多边形生成基本原理如图 8 。
线 A B , B E , E F , F G , G A 构成一封闭多边形 , 每条线都有多条后继线 。 假定从线 A B 开始生成 ,
线 A B 的后继线有 BC , B D , BE , 求它 们和线 A B 的夹角 (按顺 时针方向) , 夹角最小的后继线
(即 B E )即为线 A B 在多边形 A B E FG 上的后继线 , 然后再求线 B E 的后继线 , 直到后继线和起
始线重合为止 , 就确定了多边形拓扑关 系 。 特别情况的多边形如岛及花瓣 (图 1 0) 稍作相应的
“ 6 林 业 科 学 研 究 7 卷
处理即可
形 , m a x y ,
, 然后还应求出多边形的一个标志点 (即内点) 。 一般算法如图 9 所示 , 设 P
m in y 分别为 P 的全部点的坐标 (x , 刃中的最大和最小的 y 值 , 作水平线 y
为一多边
= m in y +
(m a x y一 m in y ) / 2 与 p 交于 (x l , y , )及 (x Z , y Z ) , 则点 [ x , + (x Z一 x l ) / 2 , y〕即为多边形 p 的一个
标志点 。
一份 一少 习国图 吕 多边形生成 原理 图 9 多边形 标志点生成 图 10 特 别形状的多边形岛 (左 )及花瓣 (右)
6
.
2 属性回填
将多边形的标志点坐标转换成原始栅格数据的栅格点 , 并将该栅格点的属性值回填至矢
量的多边形数据中 。
通过上述方法 ,栅格数据 已转换为矢量数据 , 多边形的拓扑关系已经建立 , 属性值已经 回
填 , 从而完成了栅格数据向矢量数据的转换 。
7 结 论
(1) 该方法已在 W IN G IS 中用 C + + 语言实现 , 运行可靠 。 通过在两个栅格点间插入边界
点 , 并对边界点数据进行搜索成线 , 极大地压缩了数据 。 因边界点的最大方向数为 4 , 故每个边
界点最多的搜索方向数为 4 , 且只要搜索点的方向数为 2 , 搜索就可以进行下去 , 由于判断条件
少 , 从而保证了转换的快速进行 。
(2 )线形的处理方法简单 、快速 、效果理想 , 极大地减少了数据的冗余度 。
(3) 多边形拓扑关系的建立与属性值的回填 是在全部线的数据形成后 , 采用多边形生成
方法完成的 。 所以既保证了栅格数据向矢量数据转换的完整性 , 简化了转换过程 , 又可对线进
行必要的人工编辑处理 。
(4) 上述方法是针对面状图的 , 如果稍加改动 (如增加线的细化处理 ) , 也可用于线状图 , 如
地形图的处理 。
参 考 文 献
1 黄杏元 , 汤勤编著. 地理信息系统概论 . 北京 : 高等教育 出版社 , 1 9 8 9 .
2 高显连 , 杨国勇 . 盂献策 , 等 . 地理信息系统中多边形叠合算法的研究 . 林业科学研究 , 1 9 9 2 , 5 (4 ) : 442 ~ 4 4 6.
6 期 李应国等 : W IN G IS 面状图栅格数据向矢量数据转换方法研究 6 5 7
S tu d y o n th e C o n v e r t o f Po lyg o n R a s te r
D a ts to V e Cte r D s ta in W IN G IS
L i Y in g g u o G a o X ia n lia n 7 ,i a n YO
n g lin
A b s tr ae t T e e hn iq u e fo r e o n v e r t in g the r a s t e r d a ta o f p o ly g o n m a p s t o v e e t o r d a t a 15
d is e u s s e d in t h is P aP e r
,
b a s e d o n t h e a n a ly s is a n d e o m Pa r is o n b e tw e e n t h e r a s te r a n d v e e t o r
d a t a fo r m a t s
.
A e e o r d in g to this te e hn iq u e th e re m a y b e a b o u n d a r y p o in t e x is t in g b e tw e e n
e v e r y tw o n e ig h b o r in g p ix e ls o f the r a s t e r d a t a
,
th a t m e a n s e a eh p ix e l o f the r a s te r d a ta h a s
a t m o s t e ig ht b o u n d a r y Po in t s w it h t he v a lu e o f 1 o f o
, a n d th e n u m b e r o f b o u n d a r y Po in ts
a d ja e e n t t o a n o the r 15 2 t o 4
.
T h e r e fo r e th e p o in ts o n a v e e t o r lin e a n d th e ir to p o lo g y e a n b e
d e t e r m in e d b e e a u s e th e r e 15 a n u m b e r o f a dja e e n t b o u n d a r y Po in ts o f 3 t o 4 o n t he n o d e s o f a
lin e
.
T hr o u g h s u r p lu s p o in t d e le t in g
,
lin e s m o o t h in g
,
p o ly g o n t o p o lo g y g e n e r a tin g
,
la b e l
p o in t e r e a t in g a n d fe a t u r e a t t r ib u te r e fillin g
,
th e te eh n iq u e e a n g re a t ly d e e r e a s e the d a t a
a m o u n t P ro e e s s e d a n d s u e e e s s fu lly e o n v e r t th e r a s te r d a t a t o v e e t o r d a ta
.
K ey w o r d s g e o g r a p h ie in fo rm a tio n s ys te m (G IS )
, v e e t o r d a t a
, r a s te r d a t a
L i Y in g g u o A s s is t a n t P r o fe s s o r
,
G a o X ia n lia n
,
T ia n Y o n g lin (T he R e s e a r eh In s titu te o fFo
r e s t R e s o u r e e Inf o rma
tio n
Te
e
hn iq
u e s , CA F Be iji
n g 1 0 0 0 9 1 )
.