矢量栅格一体化数据结构设计与应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
储结构如表 2 所示。
表 2 线状要素的存储结构
内部编码 l_index 左面内码 l_larea
节点数
起始点码
l_num {(x11, y11);(x22, y22 )}
右面内码 结束点码
l_rarea {(xn1, yn1);(xn2, yn2 )}
线属性值
所含节点码
l_type
{(x11, y11);(x22, y22 )}"
—88—
2.2 一体化数据网格编码结构 一体化数据结构基本网格与细分网格的编码采用坐标串
的形式,从图像的左上方开始,用 (x1, y1) 表示基本网格的坐
标串,用 (x2, y2 ) 表示细分网格在基本网格中的坐标串。这样,
图像中每一个细分网格均可用 {(x1, y1);(x2, y2 )} 2 个坐标串形
的影响,其吞吐量略小于 FEBA。QP-FEBA 表示通过 Confirm 消息修正误差,其值更接近 FEBA。
点属性 p_type
3.2 线状要素存储结构 线状要素的存储结构中包括矢量文件中所有数据项,还
包括一定量的栅格信息,即线状要素所穿过的基本网格,存
基金项目:国家自然科学基金资助项目(10771169) 作者简介:王 昌(1980-),男,博士研究生,主研方向:模糊信息 处理,数据检索;滕艳辉,博士研究生 收稿日期:2010-04-06 E-mail:heart_cw@126.com
面状要素内填充网格的记录要计算其填充的基本网格
数,并对填充网格进行二维游程编码。首先利用面状要素的
边界线数据得到它的矩形闭包,这样只要对其闭包内的网格
进行判断即可。然后按行扫描基本网格,从左到右逐个判断
它是否是边界线的穿过网格,直到出现这样的网格,记录它
的穿过特征。继续判断下一个,如果下一个不是穿过网格,
王 昌,滕艳辉
(西北大学数学与科学史研究中心,西安 710127)
摘 要:针对如何在“3S”集成过程中选择良好数据结构的问题,通过分析矢量数据结构与栅格数据结构的优缺点,以二级划分策略建立 具有两种结构优点的矢量栅格一体化数据结构,使空间数据在栅格化的同时能满足矢量精度要求,并给出其逻辑表示。在此基础上,讨论 基于该数据结构的空间数据采集与叠加分析策略。 关键词:矢量栅格;一体化数据结构;叠加分析;矢量数据;栅格数据
【Abstract】In the process of integrating “3S”, the choice of a favorable data structure is the key point. This paper analyzes the advantages and disadvantages of both vector and raster data structures, and builds an optimal data structure based on the secondary dividing strategy, which merges the advantage of simultaneity vector and raster and can fulfill the requirement of vector data accuracy. It gives a logical representation of this data structure, and rasterizes the space data simultaneity. Based on that, it discusses the strategy of the collection and overlay analysis of space data based on this data structure. 【Key words】raster and vector; integrated data structure; overlay analysis; vector data; raster data
(Fra Baidu bibliotek)
4.2 线状要素的采集与录入
数字化线状地物时,首先记录起始点,然后一边数字化
点,一边记录线所穿过的基本网格,最后记录终点。
在记录被穿过的基本网格时,当前一点被记录后,立即
转换成二级网格码并存储,再点击记录下一点后,同样转换
为二级网格码,这时,通过比较和计算,得出穿过由上述
2 点所确定线段的基本网格数和基本网格的地址码,与上次
就记录它的位置,这个基本网格就是面状要素的填充网格。
继续判断至下一个穿过网格为止,记下连续的基本网格数。
如果自第 1 个穿过网格后扫描至行尾仍没有穿过网格,取消
刚才的记录位置,继续扫描下一行,直到闭包内的所有行扫
描完为止,面状要素内填充网格就记录完毕。
5 基于一体化数据结构的空间数据叠加分析
一体化数据与矢量数据的叠加过程比较简单,只要把一体化 数据的二级网格码字转化成矢量数据所在坐标系的地理坐标 或平面坐标,就可以按照矢量与矢量数据叠加的过程进行。 然而这种叠加最后只能得到矢量数据,一体化数据中栅格信 息不起作用,将会丢掉。这种分析适用于一体化数据与矢量 数据的集成。
记录的最后一个基本网格进行比较,如果是同一个基本网格,
则只记录一个。具体过程是:由直线两端点的平面坐标算出
直线方程和直线的矩形闭包,对闭包内的所有基本网格逐一
与直线进行求交运算。这时的基本网格相当于矢量正方形,
如果直线与正方形任何一边相交,则这个基本网格就是线状
要素的穿过网格。
4.3 面状要素的采集与录入
标识别的位置是平面坐标或地理坐标,需要将其转换成矢量
栅格一体化数据结构的二级网格码字。平面坐标与二级网格
码字的转换公式如下:
x1 = [ X / S] +1
(3)
y1 = [Y / S] +1
(4)
x2 = [( X − (x1 −1) ⋅ S / s)] +1
(5)
y2 = [(Y − ( y1−1) ⋅ S) / s] +1
一体化数据与栅格数据的叠加过程是利用一体化数据中 的栅格信息与栅格数据进行代数运算,得到栅格数据。虽然 没有直接用到一体化数据中的矢量信息,但其中的面状要素
(下转第 101 页)
—89—
业务流平均时延/ms
90
80
70
60
50
40
30
本文算法
FEBA
20
1
2
3
4
5
6
业务流ID
图 4 树形拓扑中端到端平均时延
面状要素的边界录入方式与线状要素相同,边界录入后,
要建立面状要素的拓扑关系。生成方式与矢量数据拓扑关系
的建立方法相同,采用矢量数据多边形拓扑信息生成的左转
算法。其基本思想是:从一个多边形的一个节点出发,沿着
多边形的边逆时针方向行走一周再回到起始点,将经过的边
依次记录下来,即得到一个多边形的拓扑信息。
图 1 点、线、面要素的矢量栅格一体化数据
4 基于一体化数据结构的数据采集与录入
空间数据的输入主要源于三方面数据,(1)手动输入; (2)外部数据的导入;(3)对数字化的扫描地图或是遥感数字图 像直接建立起矢量栅格一体化数据结构,完成数据的采集与 录入[7]。本文讨论方法(3)。
首先,对输入的每一幅数字化地图或遥感数字图像建立 一体化数据结构的二级编码体系,否则不能对其矢量化。当 输入一幅地图时,确定基本网格的尺寸,为了更便于栅格分 析,对数字化的扫描地图采用其扫描时分辨率为基本网格的 宽度;遥感数字图像则最好采用其空间分辨率为基本网格的 宽度。接下来建立细分网格的宽度,它是自定义的。为了满 足精度需要,要手动输入细分网格的宽度,如 SPOT 全色波 段遥感图像,其空间分辨率为 10 m,则其基本网格宽度为 10 m,如果细分网格划为 16×16 格式,其细分网格宽度为 0.625 m,可以满足与 Quick bird 的叠加分析要求。
二级网格体系建好后,将一些基本信息存储在一体化数 据外部头文件中,主要有:基本网格的行数 N,基本网格的 列数 M,基本网格宽度 S,细分网格行数 n,细分网格列数 m,
细分网格宽度 s。之后可以利用矢量化的方式完成矢量栅格
一体化数据的录入。
4.1 点状要素的采集与录入
用鼠标直接在地图上采点就可以完成其数据的录入。鼠
式表示,而且是一一对应的。坐标串存储结构简单、检索方 便[6]。在进行空间数据显示时,要把一体化数据的二级网格
码字转换成平面坐标或地理坐标。用 ( X,Y ) 表示平面坐标,
S 表示基本网格宽度,s 表示细分网格宽度,则二级网格码字
与平面坐标之间的转换关系如下:
X = (x1 −1) ⋅ S + (x2 −1 2) ⋅ s
第 36 卷 第 20 期 Vol.36 No.20
计算机工程 Computer Engineering
2010 年 10 月 October 2010
·软件技术与数据库·
文章编号:1000—3428(2010)20—0088—02 文献标识码:A
中图分类号:TP311
矢量栅格一体化数据结构设计与应用
(1)
Y = ( y1 −1) ⋅ S + ( y2 −1 2) ⋅ s
(2)
3 矢量栅格一体化数据结构设计
3.1 点状要素存储结构
点状要素用细分网格的地址码字表示,一个点状要素只
占一个细分网格,如表 1 所示。
表1
内部编码 p_index
点状要素的存储结构
网格编码
{(x1, y1);(x2 , y2 )}
本文采用面向目标的矢量栅格一体化数据结构,给出另一 种细化的存储结构,并尝试将其用于空间数据采集与叠加分析。
2 矢量栅格一体化数据结构基本思想
2.1 二级划分网格策略 一体化数据结构的第 1 步是将图像空间栅格化,考虑到
不同目的的数据精度、存储结构和算法设计,本文采用二级 划分的策略。在这种划分中,将栅格数据按照矢量形式组织, 构成矢量栅格一体化数据结构,简称一体化数据结构。二级 划分是取消索引网格的划分,仅将图像划分成 M×N 个基本网 格和每个基本网格的 m×n 个细分网格。在网格编码过程中采 用了坐标串格式,二级划分虽然缺少空间索引,但可对整个 图像的一体化数据单独建立空间索引,并可采用多种不同的 数据结构,同样可提高线状、面状要素的空间检索能力[5]。
穿过网格数
基本网格串
l_netnum {(x11, y11), (x21, y21),"}
3.3 面状要素存储结构 面状要素采用面的边界与面内填充的基本网格共同存储
的方式。内部填充网格也存储在内的目的是为了更好地进行 空间分析,虽然相对于矢量数据增加了存储量,但较普通栅 格数据还是减少了存储量,同时易于与遥感数据集成。由于 面状要素的内部填充基本网格数据量很大,又具有一定规律 性,因此可采用游程编码对其按行压缩,其结构如表 3 所示。
Design and Application of Integrated Raster and Vector Data Structure
WANG Chang, TENG Yan-hui
(Center for the History of Mathematics and Science, Northwest University, Xi’an 710127, China)
内部编码 a_index 游程码数
a_cnum
表 3 面要素的存储结构
所构成面的线内码数组
线数
面属性值
a_lindex()
l_num
a_type
游程码串
{(x1, y1), n1};"; {(x2, y2 ), n2}
游程码起始网格码 游程码所含网格数
(x1, y1)
P_cnum
3 种要素的数据结构如图 1 所示。
1 概述
目前地理信息系统中通用的数据结构有 2 种:矢量数据 结构和栅格数据结构,而其他各种数据结构大多是由这 2 种 数据结构派生出来的[1]。数字化的扫描地图、遥感数字图像 等采用栅格数据结构存储,其逻辑结构简单,易于空间数据 的叠加分析,但存储量大、精度低,且属性数据项少,不易 于数据库的统一管理。矢量数据结构精度高,易于空间信息 的可视化表达,数据量小,一直是地理信息系统处理和管理 的基本数据结构。随着计算机技术的发展和高空间分辨率遥 感数字图像的出现,栅格数据结构也越来越多地被地理信息 系统引入,这样就需要经常在矢量数据结构与栅格数据结构 之间进行转换。为了减少数据转换的次数,同时又能具有 2 种数据结构的特点,文献[2]提出矢量栅格一体化数据结构 模型。许多学者对相关方面做了研究[3-4]。