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

缓冲区工具将在输入要素周围指定距离内创建缓冲区面。

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

在线周围创建偏移

下图显示了在线周围创建偏移的过程:

  • 输入线要素

    输入线要素

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

    线偏移

  • 通过偏移获得的缓冲区

    缓冲多边形输出

缓冲距离

缓冲距离参数值可以是固定值,也可以是包含数值的字段。

示例 1:固定距离

本示例显示了具有以下参数选项的线要素类的缓冲区:

  • Distance [值或字段] - 距离为 20
  • 侧类型 - Full
  • 末端类型 - Flat
  • 融合类型 - 将所有输出要素融合为一个要素

缓冲线示例 1

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

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

本示例显示了具有以下参数选项的线要素类的缓冲区:

  • Distance [值或字段] - 值为 10、20 和 30 的数值字段
  • 侧类型 - Full
  • 末端类型 - Flat
  • 融合类型 - 将所有输出要素融合为一个要素

缓冲线示例 2

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

使用侧类型融合线缓冲区

下面描述了融合选项与侧类型缓冲区之间的差异。

  • 将所有输出要素融合为一个要素 - 首先在伪网络中尽可能多地连接输入线要素。 然后,将此网络中连接线路要素的最长运行缓冲在一侧。 仅当单个要素未连接到输入中的任何其他要素时,才会对其进行缓冲。 这适用于较小的距离(最常用于缓冲表示道路和溪流的线)。 在某些情况下,较大的距离会导致输出缓冲区乍一看不正确,但较大的缓冲区可能会导致大量重叠,如果没有 post-tool 交互来理解输出,则无法处理这些重叠。

    即使输出缓冲区与其他输入线要素不正确的侧进行交互,单侧缓冲区也会尝试将生成的缓冲区输出保留在正确的侧。

    侧类型缓冲区输出,带有“将所有输出要素融合为一个要素”选项

  • 未融合 - 单侧缓冲区将单独缓冲输入行。 未考虑输出中所得缓冲区的交互。

    侧类型缓冲区输出,带有“未融合”选项

在某些情况下,当使用将所有输出要素融合为一个要素选项时,由于具有指定缓冲区距离的输入要素的复杂性,因此单侧缓冲区的创建可能会在内部失败。 当出现这种情况时,可以使用略有不同的值重新尝试缓冲区。 此过程往往效率较低,并且由于无法确定如何维护指定侧的缓冲区,因此可能会缺失缓冲区。 生成的输出缓冲区可能会与其他输入要素交叉到不正确的侧。 当使用将所有输出要素融合为一个要素选项时,具有螺旋、循环和不一致线段方向的输入线通常会导致缓冲区侧类型出现这些问题。

欧氏缓冲和测地线缓冲

缓冲区工具的一个重要功能是 Method 参数,该参数用于指定创建缓冲区的方式。 构建缓冲区有两种基本方法:欧式(平面)方法和测地线方法。

  • 欧式缓冲区测量二维笛卡尔平面中的距离,该平面用来计算平坦表面(笛卡尔平面)上两点之间的直线距离或欧氏距离。 在投影坐标系中分析要素周围的距离,这些要素集中在相对较小的区域(例如一个 UTM 带)时,欧氏缓冲区最适用。

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

  • 测地线缓冲区考虑了椭球体的曲率,并正确处理日期变更线和两极附近以及跨日期变更线和两极的数据。 如果数据涵盖较大地理范围或输入的坐标系不适合进行距离计算,则测地线缓冲区最适用。 测地线缓冲区在平面地图上可能会显示异常,但当显示在地球上时,其外观将正常。

如果数据涵盖较大地理范围或输入的坐标系不适合进行距离计算,请选择测地线缓冲区。

方法参数具有以下选项:

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

测地线缓冲区示例

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

当使用全球通用投影坐标系之一(例如墨卡托投影坐标系)中的数据集时,投影失真在赤道附近最小,但在两极附近显著。 这表示对于墨卡托投影数据集,距离测量和缓冲区偏移在赤道附近应该十分准确,而离赤道越远,精确越低。

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

第一幅张图显示了输入点位置。 将显示赤道和本初子午线以供参考。 两幅图均显示在墨卡托(世界)投影中。

在第二幅图中,对于赤道附近的点,其测地线缓冲区与欧氏缓冲区相重合。 对于赤道附近的点,墨卡托投影可产生精确的距离测量。 但是,远离赤道的点的缓冲区将显示更多距离失真,因为其欧氏缓冲区比测地线缓冲区小得多。 这种情况出现在墨卡托投影中,因为在两极,将对区域进行拉伸(与靠近赤道的陆地相比,靠近两极的陆地,例如格陵兰岛和南极洲,具有巨大的区域)。 所有 1,000 千米欧氏缓冲区大小相同,因为欧氏缓冲区例程将假设投影中各处的地图距离均相同(巴西的 1,000 千米与俄罗斯中部的 1,000 千米相同)。 这是不正确的,因为远离赤道,投影的距离将变得越来越失真。 在全球尺寸内进行任意类型的距离分析时,请使用测地线缓冲区,因为测地线缓冲区在所有区域均较为准确,而欧氏缓冲区在高变形区域准确度较低。

注:

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

地球上的欧氏缓冲区和测地线缓冲区

这些缓冲区与为上例创建的 1,000 千米欧氏缓冲区和测地线缓冲区相同。 当显示在地球上时,尽管每个欧氏缓冲区使用相同的缓冲距离,但每个欧氏缓冲区的大小都不同(阿拉斯加的缓冲区看起来比巴西的缓冲区小)。 这是因为创建缓冲区时,错误地假设从一个位置到另一位置的所有地图距离均相同。 与之形成对照的是,在地球上显示时,每个测地线缓冲区的大小均准确一致;这些测地线缓冲区是正确的,因为其没有受到投影坐标系所致变形的影响。

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

假设输入折线和面要素的折点与测地线连接(测地线是椭圆体上两点之间的最短路径)。 如果折点之间的预期路径并未随沿测地线,则必须显式地对输入进行增密。 可使用增密工具对几何进行增密。 可以使用测地线方法以获得更加精确地匹配输入要素形状的缓冲区(见下图)。

测地线缓冲区涉及比平面缓冲区更加复杂的计算,并且可能需要更长的时间才能完成。 时长主要取决于要素中折点的数量和密度。 随着要素中折点的数量和密度增大,创建缓冲区要素所需的时间也会增加。

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

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

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

例如,下图中的粗略要素具有较少的折点(折点仅位于线的折弯处),覆盖了大部分地球:

输入要素

如果使用平面方法将此线缓冲 500 千米,则以下为输出缓冲区要素(粉红色):

带有使用“平面”方法的缓冲区的输入

这可能是非预期结果,但如前所述,当使用平面方法(创建测地线缓冲区时)时,假设输入折线要素的折点与测地线连接,如下图紫色所示:

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

在这种情况下,请一起查看输入要素(蓝色)、生成的测地线(紫色)和测地线缓冲区(粉色),现在的输出是有意义的:

已使用“平面”方法缓冲了测地线。

这也许不是您想要的。

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

使用“测地线”方法保留的形状

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

BUFF_DIST 字段

输出要素类 BUFF_DIST 字段中的值采用输入坐标系的线性单位。 例如,如果在工具中指定 50 米缓冲距离,但输入的坐标系使用英尺作为线性单位,则在输出 BUFF_DIST 字段中,会将 50 米转换为英尺。 以下是例外情况:

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

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

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

地理

角度或线性

转换为米

投影

角度

转换为输入坐标系单位

投影

线性

转换为输入坐标系单位

地理或投影

未知

假定为输入坐标系单位

未知

角度或线性

无转换

BUFF_DIST 单位转换(平面方法)

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

地理

角度或线性

转换为米

投影

角度

转换为米

投影

线性

转换为米

地理或投影

未知

假定为输入坐标系单位

未知

角度或线性

无转换

BUFF_DIST 单位转换(测地线方法)

空间参考属性

注:

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

相关主题