缓冲区分析

邻近度(Proximity)描述了地理空间中两个地物距离相近的程度,其确定是空间分析的一个重要手段。交通沿线或河流沿线的地物有其独特的重要性,公共设施(商场,邮局,银行,医院,车站,学校等)的服务半径,大型水库建设引起的搬迁,铁路,公路以及航运河道对其所穿过区域经济发展的重要性等,均是一个邻近度问题。缓冲区分析是解决邻近度问题的空间分析工具之一 。

所谓缓冲区就是地理空间目标的一种影响范围或服务范围。从数学的角度看,缓冲区分析的基本思想是给定一个空间对象或集合,确定它们的邻域,邻域的大小由邻域半径R决定。因此对象Oi的缓冲区定义为:

即对象 Oi 的半径为R的缓冲区为距Oi的距离d小于R的全部点的集合。d一般是最小欧氏距离,但也可是其它定义的距离。对于对象集合

其半径为R的缓冲区是各个对象缓冲区的并,即:

图8-6为点对象、线对象、面对象及对象集合的缓冲区示例。

../../_images/img_12.png

图8-6:点、线、多边形的缓冲区

另外还有一些特殊形态的缓冲区,如点对象有三角形,矩形和圈形等,对于线对象有双侧对称,双侧不对称或单侧缓冲区,对于面对象有内侧和外侧缓冲区。这些适合不同应用要求的缓冲区,尽管形态特殊,但基本原理是一致的。

缓冲区计算的基本问题是双线问题。双线问题有很多另外的名称,如图形加粗,加宽线,中心线扩张等,它们指的都是相同的操作。

1)角分线法

双线问题最简单的方法是角分线法(简单平行线法)。算法是在轴线首尾点处,作轴线的垂线并按缓冲区半径R截出左右边线的起止点;在轴线的其它转折点上,用与该线所关联的前后两邻边距轴线的距离为R的两平行线的交点来生成缓冲区对应顶点。如图8-7所示。

../../_images/img_2.jpg

图8-7:角平分线法

角分线法的缺点是难以最大限度保证双线的等宽性,尤其是在凸侧角点在进一步变锐时,将远离轴线顶点。根据上图,远离情况可由下式表示:

当缓冲区半径不变时,d随张角B的减小而增大,结果在尖角处双线之间的宽度遭到破坏。

因此,为克服角分线法的缺点,要有相应的补充判别方案,用于校正所出现的异常情况。但由于异常情况不胜枚举,导致校正措施繁杂。

2)凸角圆弧法

在轴线首尾点处,作轴线的垂线并按双线和缓冲区半径截出左右边线起止点;在轴线其它转折点处,首先判断该点的凸凹性,在凸侧用圆弧弥合,在凹侧则用前后两邻边平行线的交点生成对应顶点。这样外角以圆弧连接,内角直接连接,线段端点以半圆封闭。如图8-8所示。

../../_images/img_3.jpg

图8-8:凸角圆弧法

在凹侧平行边线相交在角分线上。交点距对应顶点的距离与角分线法类似公式:

该方法最大限度的保证了平行曲线的等宽性,避免了角分线法的众多异常情况。

该算法非常重要的一环是折点凸凹性的自动判断。此问题可转化为两个矢量的叉积:把相邻两个线段看成两个矢量,其方向取坐标点序方向。若前一个矢量以最小角度扫向第二个矢量时呈逆时针方向,则为凸顶点,反之为凹顶点。具体算法过程如下:

由矢量代数可知,矢量AB,BC可用其端点坐标差表示(9-9):

../../_images/img_4.png

图8-9:采用向量叉乘判断向量排列

矢量代数叉积遵循右手法则,即当ABC呈逆时针方向时,S为正,否则为负。

若S>0,则ABC呈逆时针,顶点为凸;

若S<0,则ABC呈顺时针,顶点为凹;

若S=0,则ABC三点共线。

对于简单情形,缓冲区是一个简单多边形,但当计算形状比较复杂的对象或多个对象集合的缓冲区时,就复杂得多。为使缓冲区算法适应更为普遍的情况,就不得不处理边线自相交的情况。当轴线的弯曲空间不容许双线的边线无压盖地通过时,就会产生若干个自相交多边形。图8-10给出一个缓冲区边线自相交的例子。

../../_images/img_5.jpg

图8-10:缓冲区边界相交的情况

自相交多边形分为两种情况:岛屿多边形和重叠多边形。岛屿多边形是缓冲区边线的有效组成部分;重叠多边形不是缓冲区边线的有效组成,不参与缓冲区边线的最终重构。对于岛屿多边形和重叠多边形的自动判别方法,首先定义轴线坐标点序为其方向,缓冲区双线分成左右边线,左右边线自相交多边形的判别情形恰好对称。对于左边线,岛屿自相交多边形呈逆时针方向,重叠自相交多边形呈顺时针方向;对于右边线,岛屿多边形呈顺时针方向,重叠多边形呈逆时针方向。

当存在岛屿和重叠自相交多边形时,最终计算的边线被分为外部边线和若干岛屿。对于缓冲区边线绘制,只要把外围边线和岛屿轮廓绘出即可。对于缓冲区检索,在外边线所形成的多边形检索后,要再扣除所有岛屿多边形的检索结果。

基于栅格结构也可以作缓冲区分析,通常称为推移或扩散(Spread)。推移或扩散实际上是模拟主体对邻近对象的作用过程,物体在主体的作用下在一阻力表面移动,离主体越远作用力越弱。例如可以将地形、障碍物和空气作为阻力表面,噪声源为主体,用推移或扩散的方法计算噪声离开主体后在阻力表面上的移动,得到一定范围内每个栅格单元的噪声强度。