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

如何创建缓冲区

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

在线周围创建偏移

输入线要素

输入线要素

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

线偏移

通过偏移获得的缓冲区

缓冲多边形输出

缓冲距离的描述

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

示例 1:固定距离

下图显示的是线要素类的缓冲区,其中使用 20 作为缓冲距离、以 FLAT 作为末端类型、以 FULL 作为侧类型并以 ALL. 作为融合类型

缓冲线示例 1

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

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

此示例说明的是线要素类的缓冲区,其中使用 10、20 和 30 的数值字段值作为缓冲距离、以 FLAT 作为末端类型、以 FULL 作为侧类型并以 ALL 作为融合类型。

缓冲线示例 2

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

欧氏缓冲和测地线缓冲

缓冲区工具的一个重要特征是方法参数,该参数决定了缓冲区的构建方式。构建缓冲区有两种基本方法,欧式方法和测地线方法。

  • 欧式缓冲区测量二维笛卡尔平面中的距离,该平面用来计算平坦表面(笛卡尔平面)上两点之间的直线距离或欧氏距离。欧氏缓冲区是更常见的缓冲区类型,特别适合于分析投影坐标系中要素周围的距离,这些距离侧重于相对较小的区域(如一个 UTM 带)。

    在投影坐标系中,投影区域中要素的距离、面积和形状会发生变形;使用投影坐标系就会出现这种情况。例如,如果使用“美国国家平面”或 UTM 投影坐标系,投影原点(国家中心或 UTM 带)附近的要素将更加精确,距离原点越远,变形越严重。同样,如果使用世界投影坐标系,某区域的变形通常最小,但在另一个区域却会较为明显(对于墨卡托世界投影,赤道附近的变形最小而两极附近的变形较大)。对于既有低变形区域要素,又有高变形区域要素的数据集,低变形区域的欧氏缓冲区将会更精确而高变形区域内则精度较低。

  • 测地线缓冲区表示地球的实际形状(即椭圆体,更准确地说是大地水准面)。并计算曲面(大地水准面)上而不是平坦表面(笛卡尔平面)上两点间的距离。在以下情况下,您应始终考虑创建测地线缓冲区:
    • 输入要素处于分散状态(覆盖多个 UTM 带、大面积区域甚至整个地球),或
    • 输入要素的空间参考(地图投影)为保留其他属性(如面积)使距离发生变形。
    测地线缓冲区在平面地图上可能会显示异常,但当显示在地球上时,这些缓冲区的外观将正常。

方法参数决定了缓冲区的创建方式。

  • Planar 是默认选项。该选项会根据输入要素的坐标系自动确定要使用的方法。
    • 如果输入要素位于投影坐标系中,则将创建欧氏缓冲区。
    • 如果输入要素位于地理坐标系中且指定的缓冲距离单位为线性单位(米、英尺等,而非诸如度之类的角度单位),则会创建测地线缓冲区。
    • 该选项产生的结果与 ArcGIS 10.3 版本之前的缓冲区工具结果相同。
  • 无论使用哪种输入坐标系,测地线都会创建形状不变的测地线缓冲区。形状不变的测地线缓冲区不会假设连接折点的线为测地线曲线。相反,它会缓冲输入要素类空间参考中的要素,以便创建能更准确地表示输入要素形状的缓冲区。如果考虑缓冲区的形状以及该形状与原始输入要素的匹配程度,建议您使用此选项进行调查,尤其在输入数据位于地理坐标系中时。在某些情况下,与使用平面选项创建测地线缓冲区相比,使用此选项创建缓冲区可能需要花费更长的时间,但生成的缓冲区能更加精确地匹配输入要素的形状。

测地线缓冲区示例

本示例的目标是对一组选定世界城市的 1,000 千米测地线缓冲区和欧氏缓冲区进行比较。测地线缓冲区通过使用地理坐标系对点要素类进行缓冲而生成,而欧氏缓冲区则通过使用投影坐标系对点要素类进行缓冲而生成(对于投影和未投影数据,点均代表相同的城市)。

在世界范围内较为常用的一种投影坐标系(例如墨卡托)中处理数据集时,赤道附近的投影变形可能最小,而两极附近的较为明显。这表示对于墨卡托投影数据集,距离测量和缓冲区偏移在赤道附近应该十分准确,而离赤道越远,精确越低。

测地线缓冲区和欧氏缓冲区

左图显示了输入点位置。显示的赤道和中央经线作为参考。两幅图均显示在墨卡托(世界)投影中。

右图中,赤道附近的点,其测地线缓冲区与欧氏缓冲区相重合。对于接近赤道的点,使用墨卡托投影可以获得较准确的测量距离。但是,距赤道较远的点的缓冲区发生了严重的距离变形,其欧氏缓冲区比测地线缓冲区要小得多;导致墨卡托投影出现这一现象的原因是,两极处的面积被拉伸(靠近两极的大陆板块(例如格陵兰岛和南极洲)与靠近赤道的大陆板块相比,面积要大得多)。所有 1,000 千米的欧氏缓冲区大小均相同,因为欧氏缓冲区程序假定投影中每处的映射距离均相同(巴西的 1,000 千米与俄罗斯中部的 1,000 千米相同);而实际情况并非如此,离赤道越远,投影距离的变形越严重。在全球尺寸内进行任意类型的距离分析时,应使用测地线缓冲区,因为测地线缓冲区在所有区域均较为准确,而欧氏缓冲区在高变形区域准确度较低。

注:

在地球上显示测地线缓冲区和欧氏缓冲区,可明显看出来测地线缓冲区更精确。

ArcGlobe 中的欧氏缓冲区和测地线缓冲区

上图所示与上述示例所创建的 1,000 千米欧氏缓冲区和测地线缓冲区相同。在地球上显示时,尽管每个缓冲区使用的缓冲距离实际是一样的,但每个欧氏缓冲区大小均不相同(可以看到,阿拉斯加的缓冲区看起来要比巴西的缓冲区小得多)。这是由于生成的缓冲区是根据在世界各地的任何位置所有映射距离均相同这一错误假设所创建的。与之形成对照的是,在地球上显示时,每个测地线缓冲区的大小均准确一致;这些测地线缓冲区是正确的,因为其没有受到投影坐标系所致变形的影响。

有关测地线缓冲的其他信息

输入折线和面要素的折点假定与测地线(测地线为椭圆体上两点间的最短路径)相连接。如果折点之间的预期路径并不与测地线趋于一致,则首先需要显式增密输入。可使用增密工具对几何进行增密。您也可选择 GEODESIC 方法来获得更加精确地匹配输入要素形状的缓冲区(见下图)。

形状保持不变的测地线缓冲区

如果缓冲线或面,测地线方法将通过缓冲输入要素类空间参考中的要素来生成测地线缓冲区,以便确保缓冲区符合输入要素的预期测地线形状。

使用测地线方法后,您只能在输出缓冲区中找到极小的差异。这是因为形状保持不变的测地线方法在输入要素没有合适的折点密度使缓冲区创建过程保持其形状的情况下最容易被看见(通常是粗略且不准确的要素)。因此,在决定使用测地线方法之前,了解您的输入数据是十分重要的。

例如,以下是带有极少折点(折点仅在线的弯曲处)并覆盖大部分 globe 的粗糙要素:

输入要素

如果使用平面方法将线缓冲 500km,我们将得到以下输出缓冲区要素(粉色):

使用

这可能是意外出现的,但如前文所述,平面方法(创建测地线缓冲区时)会假设输入折线要素与测地线相连接,如下方紫色图像所示:

在折点之间与假定的测地线一同显示的输入要素

因此,在这种情况下应同时查看输入要素(蓝色)、生成的测地线(紫色)和测地线缓冲区(粉色),这样输出才有意义:

当选择 PLANAR 方法时,会显示测地线已经缓冲

这也许不是您想要的。

测地线方法不会假设连接折点的线由测地线曲线连接。使用测地线方法生成的测地线缓冲区将用绿色显示如下:

使用 GEODESIC 方法保留的形状

现在,您所拥有的测地线缓冲区能够更进一步保留输入要素的形状。

BUFF_DIST 字段

输出要素类的 BUFF_DIST 字段中的值使用“输入要素”坐标系的线性单位。例如,如果在工具中指定 50 米缓冲距离,但输入数据集的坐标系使用英尺作为线性单位,则输出 BUFF_DIST 字段中,50 米将转换为英尺。有两种情况例外:

  • 如果“输入要素”具有地理坐标系,且缓冲距离以线性单位(例如千米或英里)指定,则 BUFF_DIST 字段中的值将以米为单位。
  • 如果“输入要素”的空间参考“未知”,则不会应用转换,所以 BUFF_DIST 字段中的值即为所输入的值。

下表总结了 BUFF_DIST 单位转换执行与否的方案。

输入要素坐标系缓冲距离单位单位转换

地理

角度或线性

转换为米

投影

角度

转换为输入坐标系单位

投影

线性

转换为输入坐标系单位

地理或投影

未知

假定为输入坐标系单位

未知

角度或线性

无转换

BUFF_DIST 单位转换(PLANAR 方法)

输入要素坐标系缓冲距离单位单位转换

地理

角度或线性

转换为米

投影

角度

转换为米

投影

线性

转换为米

地理或投影

未知

假定为输入坐标系单位

未知

角度或线性

无转换

BUFF_DIST 单位转换(GEODESIC 方法)

空间参考属性

注:

BUFF_DIST 值的单位始终为设置输出坐标系环境时使用的单位。

相关主题