缓冲(分析)工具的工作原理

如何创建缓冲区

缓冲例程将遍历输入要素的每个折点并创建缓冲区偏移。根据这些偏移创建输出缓冲区要素。

在线周围创建偏移

输入线要素

输入线要素

在输入线要素周围创建的偏移

线偏移

通过偏移获得的缓冲区

缓冲面输出

缓冲距离的描述

可以输入一个固定值或一个包含数值的字段作为缓冲距离参数。

示例 1:固定距离

下图显示的是线要素类的缓冲区,输入 20 作为缓冲距离、FLAT 作为末端类型、FULL 作为侧类型并选择 ALL 作为融合类型。

缓冲线示例 1

由于缓冲距离为常量,因此缓冲后所有要素的宽度都相同。

示例 2:由字段决定的距离

此示例说明的是线要素类的缓冲区,将包含了 10、20 和 30 的数值型字段作为缓冲距离、FLAT 作为末端类型、FULL 作为侧类型并选择 ALL 作为融合类型。

缓冲线示例 2

由于缓冲距离取决于字段值,因此可以在同一操作中应用多种不同的缓冲宽度。

欧氏缓冲和测地线缓冲

测地线缓冲

有两种方法可以生成缓冲偏移:欧氏方法(或 2D 笛卡尔)和测地线方法。

欧氏缓冲

此方法使用二维距离公式计算偏移以缓冲输入几何。

要获得最佳结果,应在使特定输入数据集变形达到最小的投影坐标系中执行缓冲操作。

测地线缓冲(仅限点和多点)

此方法通过将偏移投影到地球表面(椭球体)上来计算各个偏移,进而缓冲输入几何。

测地线缓冲方法将生成不受投影坐标系中固有变形影响的缓冲区。

在为地理坐标系中的要素生成缓冲区时,此方法尤为重要。这是因为,尽管在整个坐标系中对纬度的转换固定不变,但是由经度到线性距离的转换却会随着远离赤道而发生很大变化。

例如,在赤道上,1 十进制度等于 111.325 千米,但是从赤道向北或向南移动时,经线的间距将越来越小:在纬度为 30 度的位置,一经度等于 96.49 千米,但在纬度为 60 度的位置,一经度只等于 55.80 千米。最后,所有经线均交汇于极点。

下图显示的是,在逐渐远离赤道的过程中,长宽分别为 1 经度和 1 纬度的方形区域在形状和大小上将如何变化。

经纬方形

在满足以下三个条件时使用测地线缓冲算法:

  • 输入要素类包含一点或多点。
  • 输入要素类具有地理坐标系(未投影)。
  • 使用线性单位(例如,千米或英里)指定缓冲距离。

使用测地线缓冲进行分析的示例

操作目标是在一组选定的世界城市周围生成缓冲距离为 500 千米的缓冲区。在过去,此类操作可能难以完成。不过,现在使用测地线缓冲方法只需以下两个步骤即可:首先在地理坐标系中选择输入点图层(在下图中以黑色三角形标出),然后将缓冲距离指定为“500 千米”。

要缓冲的世界城市输入

距离赤道越远,生成的缓冲区的变形程度越大。

世界城市缓冲区

雅加达距离赤道仅 6 度,因此为其生成的缓冲区非常接近圆形。

雅加达测地线缓冲区

另一方面,斯德哥尔摩位于北纬 59 度。在地理坐标系中进行渲染时,该缓冲区会产生明显变形,尤其是在东西方向上。使用 ArcMap 中的“测量”工具时,将返回一个以该点为圆心、以 500 千米为半径的圆作为缓冲区。这是因为“测量”工具也计算测地线距离。

地理坐标系中的斯德哥尔摩缓冲区

将 ArcMap 数据框坐标系切换到 UTM 33 区(适用于斯德哥尔摩)之后可以看到,在合适的投影坐标系中,该缓冲区非常接近圆形。

UTM 中的哥本哈根缓冲区

加拿大努纳维特地区的阿勒特是世界上最北部的人类定居地。下图中黑色三角形所示位置即为阿勒特。黄色区域表示在该点周围生成的缓冲距离为 1,000 千米的测地线缓冲区。

地理坐标系中的阿勒特缓冲区

将 ArcMap 数据框坐标系设置为北极投影时,阿勒特周围的缓冲区也将变为圆形。

极坐标系中的阿勒特缓冲区

BUFF_DIST 字段

在 ArcGIS 9.3 之前的版本中,BUFF_DIST 字段会准确反映用户输入的值。例如,如果数据的空间参考以英尺作为线性单位并以 50 米作为缓冲距离,则输出数据的属性表将如下所示:

9.3 版之前的 BUFF_DIST 字段

从 ArcGIS 9.3 开始,BUFF_DIST 字段中的值将使用输入数据的单位。以上述情况为例,此时会将 50 米缓冲距离转换为以输入数据的测量单位显示,此例中为英尺:

9.3 BUFF_DIST 字段

有两种情况例外:

注:BUFF_DIST 字段值的单位通常是设置输出坐标系环境时使用的单位。

下表总结了未设置输出坐标系环境时可能出现的情况。请注意,线性既包括公制测量单位也包括非公制测量单位。

数据坐标系单位

缓冲距离单位

BUFF_DIST 字段中的距离单位

角度

角度或线性

无转换

线性

角度

转换为坐标系单位

线性

Linear

转换为坐标系单位

角度或线性

未知

假定为输入坐标系单位

未知

角度或线性

无转换

BUFF_DIST 单位转换行为
“要素类”属性对话框

相关主题


7/10/2012