Flyingis

Talking and thinking freely !
Flying in the world of GIS !
随笔 - 156, 文章 - 16, 评论 - 589, 引用 - 0
数据加载中……

GIS 缓冲区应用及算法实现

作者: Flyingis

地理信息空间几何关系分析主要包括邻近度 (proximity) 分析、叠加分析、网络分析等。缓冲区分析是邻近度分析的一种,缓冲区是为了识别某一地理实体或空间物体对其周围地物的影响度而在其周围建立具有一定宽度的带状区域。缓冲区作为独立的数据层进行叠加分析,可应用到道路、河流、环境污染源、居民点、辐射源等的空间分析,为某种应用目的提供科学依据,另外,结合不同的专业模型,可以在生活、军事、城乡规划等领域发挥重要的作用。

针对点、线、面不同的几何类型,建立缓冲区的方式相互有所不同。建立点缓冲区比较简单,即以某点要素为圆心,以缓冲半径 R 作圆,得到点要素的缓冲区;线要素的缓冲区是以线为轴,以 R 为距离作两侧的平行线,在线的两端构建两个半圆弧段,和平行线一起组成缓冲区;面缓冲区的建立,是以面要素的边界为基线向内外侧作平行线,平行线和基线里的区域就是面缓冲区。除此之外,还可以对栅格数据建立缓冲区,根据不同的模型方程建立动态缓冲区,不论对什么样的数据建立缓冲区,其基本方法都是相似的。

缓冲区实现算法有矢量方法和栅格方法两种。其中矢量方法数据量小,方法相对成熟,栅格图像需要进行栅格像元之间进行布尔运算,当缓冲区较大时会带来较重的运算负荷,实际运用中存在一定的局限性。矢量方法算法一般遵循以下步骤:

:确定中心点——以中心点为圆心、 R 为半径生成一个圆——得到缓冲区边界

线、面 :确定轴线——以距离 R 生成中心轴线的平行曲线——处理转角弧段——对生成的弧段进行求交、合并运算——生成缓冲区边界

常用的矢量数据中心线扩张算法:

角分线法

基本思想:即“简单平行线法”,在轴线的两边作出平行线,在转角处形成尖角,两端形成弧段,组成缓冲区。

缺陷:难以保证在尖角处缓冲区左右边线等宽;校正过程复杂,主要体现在轴线折角很大和很小时的情况;算法模型复杂,主要是因为几何生成过程中需要处理较多的异常。

凸角圆弧法

基本思想:顾名思义,即是在转角外侧用圆弧来代替尖角,内侧仍然使用尖角的方法,生成缓冲区。

实施步骤:

1.        直线性判断,判断相邻三点是否在同一直线上;

2.        折点凸凹性判断,确定转角的地方哪侧使用直线求交,哪侧使用圆弧连接;

3.        凸点圆弧的嵌入,即将转角外侧形成的圆弧和两边的线段相连;

4.        边线关系的判别与处理,岛屿多边形参与缓冲区边界的构成,重叠多边形不参与缓冲区边界的构成;

5.        缓冲区边界的形成,具体是将重叠区域进行合并,绘制外围的边线,包括岛屿多边形的轮廓,形成最终的缓冲区边界。

在缓冲区算法中,需要注意的一个问题是缓冲区多边形的重叠与合并,包括同一要素缓冲区的重叠和多个要素之间缓冲区的重叠。栅格数据缓冲区内的栅格具有一个与其影响度对应的一个值,如果重叠区域具有相同影响度则任取一值,如果不同则采取影响度大的代替影响度小的方法处理。对于矢量数据的处理算法有三种:数学运算法;矢量-栅格转换法;矢量-栅格混合法。 

posted on 2006-04-17 15:25 Flyingis 阅读(7668) 评论(9)  编辑  收藏 所属分类: GIS-GPS-RS

评论

# re: GIS 缓冲区应用及算法实现  回复  更多评论   

可否有现成算法可以给我研究学习。
zhanzhenbo@126.com
2006-10-09 10:11 | piaoyi

# re: GIS 缓冲区应用及算法实现  回复  更多评论   

@piaoyi
研究GIS底层算法,可以选择各种GIS开源软件。
2006-10-11 18:46 | Flyingis

# re: GIS 缓冲区应用及算法实现  回复  更多评论   

是的,现在看来.确实有很多优秀的开源项目值得研究.

呵呵.
2006-12-07 20:35 | zhanzhenbo

# re: GIS 缓冲区应用及算法实现[未登录]  回复  更多评论   

能否给我一份算法或代码,谢谢!
shenyegh@scfast.com
2007-06-10 18:44 | 小高

# re: GIS 缓冲区应用及算法实现  回复  更多评论   

fangkai@163.com

# re: GIS 缓冲区应用及算法实现  回复  更多评论   

想研究源代码的朋友可以看看Geotools源代码。
2007-06-28 10:00 | Flyingis

# re: GIS 缓冲区应用及算法实现  回复  更多评论   

我用的是VC,不懂Java,现在急需实现缓冲区分析,不知有没有详细的算法或源码
2007-08-28 20:28 | jeo2007

# re: GIS 缓冲区应用及算法实现  回复  更多评论   

@jeo2007
给你推荐一本书:《地理信息系统算法基础》,科学出版社。
2007-08-29 10:11 | Flyingis

# re: GIS 缓冲区应用及算法实现  回复  更多评论   

gujiacheng1@sohu.com
万分感谢
2014-02-17 23:01 | SGu

只有注册用户登录后才能发表评论。


网站导航: