八方向法与全路径法对矢量线要素栅格化的比较
2013-12-29刘义海
摘 要:地理信息系统中空间数据结构主要有矢量数据结构和栅格数据结构,两者之间的转换是GIS的关键技术之一。在GIS的具体应用中,不同的分析处理所要求的数据格式也不一样。基于此背景,本文提出了对矢量线要素栅格化的两种常用方法:八方向栅格化和全路径栅格化,并通过java编程实现了两者之间的对比。
关键词:GIS 栅格化 八方向栅格化 全路径栅格化
中图分类号:G71 文献标识码:A 文章编号:1672-3791(2013)04(a)-0066-01
GIS中空间数据结构主要有矢量数据结构和栅格数据结构两种,两者之间的相互转换是GIS的关键技术之一。矢量数据结构是把所有的地理空间实体都用X、Y坐标进行表示的一种数据结构,而栅格数据结构则是以规则的格网阵列来表示地理空间实体或有连续分布规律现象的数据组织,两者都可以用来表达地理空间实体的点、线、面三种基本类型。在GIS的具体应用中都有其各自的优缺点,如矢量数据能表达的实体位置精度更高、输出的图形更精确美观、数据冗余度小等,而栅格数据结构简单,相比矢量数据更适合于空间分析中的叠置分析和某些自然现象的空间分布规律的表达。所以为了在GIS中能合理利用这两种数据结构,以便进一步对空间数据在不同的应用中进行分析处理,常常需要实现矢量数据结构与栅格数据结构间的相互转换转换。目前,矢量数据与栅格数据之间的转换已经发展了许多高效的算法,如对矢量线要素的有八方向栅格化、对矢量面要素的内部点扩散算法等。本文主要是提出了矢量线要素栅格化的两种常用算法:八方向栅格化和全路径栅格化,在简要介绍这两种算法的基础上,通过java编程试验的方法,对利用这两种算法实现对矢量线要素栅格化进行了实验测试和比较。
1 八方向栅格化及其特点
所谓八方向栅格化,是指在根据矢量线的倾角情况,在每行或每列上,只有一个像元被”涂黑”(赋予不同背景色的灰度值)。设有一条线段起始坐标分别为(x1,y1),(x2,y2),其算法实现主要过程如下。
第一步:计算出线段端点(x1,y1),(x2,y2)所在的行、列号(I1,J1)及(I2,J2),并将它们”涂黑”。
第二步:计算出线段两个端点所在位置的行差与列差为rowCut、colCut。如果rowCut-colCut>=0,则逐行求出本行中心线与过这两个端点的交点,并将它们”涂黑”。
y=y中心线
x=(y-y1)b+x1,(其中)
如果列rowCut-colCut<0,则逐列求出本列中心线与过这两个端点的直线的交点,并将它们”涂黑”。
x=x中心线
y=(x-x1)b’+y1,(其中)
八方向栅格化的特点:在保持八方向连通的前提下,栅格影像看起来最细,不同线划间最不易”粘连”,且容易实现。
2 全路径栅格化及其特点
全路径栅格化是用分带法进行矢量向栅格的转换,即按行计算起始列号和终止列号(或按列计算起始行号和终止行号)的方法。设有一条线段起始坐标分别为(x1,y1),(x2,y2),其算法实现主要过程如下:
第一步:计算出线段两个端点所在位置的行差与列差为rowCut、colCut。(以下以colCut-rowCut>=0为例进行计算)
第二步,计算线段两端点倾角a的正切
第三步,计算起始列号ja。
第四步,计算终止列号je。
第五步,将第i行从ja列开始到je列为止的中间所有栅格”涂黑”。
第六步,遍历线段所穿过的所有行,如果不是终止行,则把je赋给ja;行号i加1,并转第四步,否则结束。
全路径栅格化的特点:栅格化后的线要素较八方向栅格化饱满,适合于要向任何方向进行探测的栅格影像或想知道矢量覆盖的范围,计算较复杂。
3 两种方法对矢量线要素栅格化的实现与对比
从前面的分析可以看出,不管采取八方向栅格化还是全路径栅格化,都可以实现对矢量线要素的栅格化。为了能使测试结果有对比性,本文主要是利用了java编程语言创建了八方向栅格化和全路径栅格化的程序,并在同一个窗体上对这两种算法对矢量线要素栅格化进行了显示。如图1,通过线段的平移,以保证两线段的性质都是一样的,该程序的实现是以当行差大于列差进行测试的。
4 结语
通过上述编程试验测试表明,八方向栅格化和全路径栅格化方法都能实现对线要素栅格化的目的。但八方栅格化方法栅格化后的线要素比较精细,数据量较小;而全路径栅格化法栅格化后的线要素比较饱满,但计算较八方向栅格化法复杂。
参考文献
[1]兰小机,刘德儿.地理信息系统(Version 2)[M].江西理工大学.
[2]张宏,温永宁,刘爱利,等.地理信息系统算法基础[M].科学出版社,2006,6.
[3]李璐.一种矢量数据栅格化的方法及其应用[J].农业网络信息,2009,10.
[4]白燕,廖顺宝.矢量数据属性信息无损栅格化的实现方法[J].地理信息科学学报,2010,6.
[5]王建,杜道生.矢量数据向栅格数据转换的一种改进算法[J].地理与地理信息科学,2004,20(1):31-34.