如何创建缓冲区
缓冲区程序将遍历输入要素的每个折点并创建缓冲区偏移。通过这些偏移创建输出缓冲区要素。
在线周围创建偏移
输入线要素
在输入线要素周围创建的偏移
通过偏移获得的缓冲区
缓冲距离的描述
可以输入一个固定值或一个数值型字段作为缓冲距离参数。
示例 1:固定距离
下图显示的是线要素类的缓冲区,其中使用 20 作为缓冲距离、以 FLAT 作为末端类型、以 FULL 作为侧类型并以 ALL. 作为融合类型。
由于缓冲距离为常量,因此缓冲后所有要素的宽度相同。
示例 2:由字段决定的距离
此示例说明的是线要素类的缓冲区,其中使用 10、20 和 30 的数值字段值作为缓冲距离、以 FLAT 作为末端类型、以 FULL 作为侧类型并以 ALL 作为融合类型。
由于缓冲距离取决于字段值,因此可以在同一操作中应用多种不同的缓冲宽度。
欧氏缓冲和测地线缓冲
缓冲区工具的一个重要特征是方法参数,该参数决定了缓冲区的构建方式。构建缓冲区有两种基本方法,欧式方法和测地线方法。
- 欧式缓冲区测量二维笛卡尔平面中的距离,该平面用来计算平坦表面(笛卡尔平面)上两点之间的直线距离或欧氏距离。欧氏缓冲区是更常见的缓冲区类型,特别适合于分析投影坐标系中要素周围的距离,这些距离侧重于相对较小的区域(如一个 UTM 带)。
在投影坐标系中,投影区域中要素的距离、面积和形状会发生变形;使用投影坐标系就会出现这种情况。例如,如果使用“美国国家平面”或 UTM 投影坐标系,投影原点(国家中心或 UTM 带)附近的要素将更加精确,距离原点越远,变形越严重。同样,如果使用世界投影坐标系,某区域的变形通常最小,但在另一个区域却会较为明显(对于墨卡托世界投影,赤道附近的变形最小而两极附近的变形较大)。对于既有低变形区域要素,又有高变形区域要素的数据集,低变形区域的欧氏缓冲区将会更精确而高变形区域内则精度较低。
- 测地线缓冲区表示地球的实际形状(即椭圆体,更准确地说是大地水准面),并会计算曲面(大地水准面)上而不是平坦表面(笛卡尔平面)上两点间的距离。在以下情况下,您应始终考虑创建测地线缓冲区:
- 输入要素处于分散状态(覆盖多个 UTM 带、大面积区域甚至整个地球),或
- 输入要素的空间参考(地图投影)为保留其他属性(如面积)使距离发生变形。
方法参数决定了缓冲区的创建方式。
- Planar 是默认选项。该选项会根据输入要素的坐标系自动确定要使用的方法。
- 如果输入要素使用投影坐标系,则将创建欧氏缓冲区。
- 如果输入要素使用地理坐标系且以线性单位(米、英尺等,而度等角度单位)指定了缓冲距离,则将创建测地线缓冲区。
- 该选项产生的结果与 ArcGIS 10.3 版本之前的缓冲区工具结果相同。
- 无论使用哪种输入坐标系,测地线都会创建形状不变的测地线缓冲区。形状不变的测地线缓冲区不会假设连接折点的线为测地线曲线。相反,它会缓冲输入要素类空间参考中的要素,以便创建能更准确地表示输入要素形状的缓冲区。如果考虑缓冲区的形状以及该形状与原始输入要素的匹配程度,建议您使用此选项进行调查,尤其在输入数据位于地理坐标系中时。在某些情况下,与使用平面选项创建测地线缓冲区相比,使用此选项创建缓冲区可能需要花费更长的时间,但生成的缓冲区能更加精确地匹配输入要素的形状。
测地线缓冲区示例
本示例的目标是对一组选定世界城市的 1,000 千米测地线缓冲区和欧氏缓冲区进行比较。测地线缓冲区通过使用地理坐标系对点要素类进行缓冲而生成,而欧氏缓冲区则通过使用投影坐标系对点要素类进行缓冲而生成(对于投影和未投影数据,点均代表相同的城市)。
在世界范围内较为常用的一种投影坐标系(例如墨卡托)中处理数据集时,赤道附近的投影变形可能最小,而两极附近的较为明显。这表示对于墨卡托投影数据集,距离测量和缓冲区偏移在赤道附近应该十分准确,而离赤道越远,精确越低。
左图显示了输入点位置。显示的赤道和中央经线作为参考。两幅图均显示在墨卡托(世界)投影中。
右图中,赤道附近的点,其测地线缓冲区与欧氏缓冲区相重合。对于接近赤道的点,使用墨卡托投影可以获得较准确的测量距离。但是,距赤道较远的点的缓冲区发生了严重的距离变形,其欧氏缓冲区比测地线缓冲区要小得多;导致墨卡托投影出现这一现象的原因是,两极处的面积被拉伸(靠近两极的大陆板块(例如格陵兰岛和南极洲)与靠近赤道的大陆板块相比,面积要大得多)。所有 1,000 千米的欧氏缓冲区大小均相同,因为欧氏缓冲区程序假定投影中每处的映射距离均相同(巴西的 1,000 千米与俄罗斯中部的 1,000 千米相同);而实际情况并非如此,离赤道越远,投影距离的变形越严重。在全球尺寸内进行任意类型的距离分析时,应使用测地线缓冲区,因为测地线缓冲区在所有区域均较为准确,而欧氏缓冲区在高变形区域准确度较低。
BUFF_DIST 字段
输出要素类的 BUFF_DIST 字段中的值使用“输入要素”坐标系的线性单位。例如,如果在工具中指定 50 米缓冲距离,但输入数据集的坐标系使用英尺作为线性单位,则输出 BUFF_DIST 字段中,50 米将转换为英尺。对此有两种例外情况:
- 如果“输入要素”具有地理坐标系,且缓冲距离以线性单位(例如千米或英里)指定,则 BUFF_DIST 字段中的值将为米。
- 如果“输入要素”的空间参考“未知”,将不会应用转换,所以 BUFF_DIST 字段中的值即为所输入的值。
下表总结了 BUFF_DIST 单位转换执行与否的方案。
输入要素坐标系 | 缓冲距离单位 | 单位转换 |
---|---|---|
地理 | 角度或线性 | 转换为米 |
已投影 | 角度 | 转换为输入坐标系单位 |
已投影 | 线性 | 转换为输入坐标系单位 |
地理或投影 | 未知 | 假定为输入坐标系单位 |
未知 | 角度或线性 | 无转换 |
输入要素坐标系 | 缓冲距离单位 | 单位转换 |
---|---|---|
地理 | 角度或线性 | 转换为米 |
已投影 | 角度 | 转换为米 |
已投影 | 线性 | 转换为米 |
地理或投影 | 未知 | 假定单位为米 |
未知 | 角度或线性 | 无转换 |