在 Advanced 许可等级下可用。
描述
在指定的输入 Coverage 要素周围创建缓冲区面。
插图
使用方法
使用 POLY 选项时,正负距离均可用于缓冲距离。当缓冲项同时包含正数和负数时,可以在同一 Coverage 中收缩某些面而增大其他面。
ROUND、FLAT、FULL、LEFT 和 RIGHT 选项仅适用于线数据。
小的狭长面可以由“缓冲区”工具创建。当把这些面编码为缓冲区内部的非缓冲区域时,可能会产生问题。可使用消除进行移除。
如果缓冲距离为零,则不会对要素进行缓冲处理。如果不想在输入 Coverage 中缓冲某个要素,则可在缓冲项中将其缓冲距离值设置为零,或在缓冲表中将 DIST 值设置为零。
在包含岛屿面的 Coverage 上执行缓冲时,缓冲距离大于零的所有面都会进行缓冲处理。不过,由于岛屿缓冲区全部在其周围的面缓冲区之内,因此,在“缓冲区”融合阶段可以将其融合到周围面中,并且该岛屿缓冲区将不可见。
无论是否具有 NAT,结点在 Coverage 上均可进行缓冲处理。如果没有 NAT,则必须对 AAT 中的结点进行编号(FNODE# 和 TNODE# 必须大于零)。如果结点编号为零,请运行重新编号结点。
LEFT 和 RIGHT 选项表示在线的左侧或右侧生成缓冲区。解释是线的左侧还是右侧时必须小心谨慎。一条线段定义两个半平面,将一个矩形缓冲区分成明确的左右两部分。连接线段时,其中一条线段左侧的点可能位于另一条连接线段的右侧。可通过不与线相交概念防止出现这种不明确的情况。
由于 LEFT 和 RIGHT 选项使用的是线的拓扑左侧和右侧,因此,要使用这些选项,必须存在线拓扑。要访问“线”缓冲区样式,请在输入 Coverage 上的构建中使用 LINE 和 NODE。
BUFFER 功能适用于欧氏空间并使用二维算法。在任何坐标系下,缓冲区的宽度均相同。并不会反映地球的曲率或形状。为获得最佳结果,应在使感兴趣区域变形达到最小的地图投影中生成缓冲区。
对于线周围的缓冲区,输出 Coverage 与输入 Coverage 的模糊容差可能不同。输出容差可能会重置为缓冲距离的函数。当缓冲距离较大时可能会发生这种情况,反映出路线逐渐接近于一个具有固定直线段数的圆。如果要避免产生这种影响,可以分多步来增长缓冲区。首先,使用短缓冲距离通过 LINE 选项运行“缓冲区”,然后在此基础上使用 POLY 选项运行多个缓冲区,直到获得所需缓冲距离为止。模糊容差仅更改线周围的缓冲区,并不更改面周围的缓冲区。
输出 Coverage 的坐标精度由派生 Coverage 的精度环境设置所设置的当前处理规则确定。如果在当前会话期间未建立处理规则,则该处理规则的优先级将最高。这意味着“缓冲区”将以输入 Coverage 的精度来创建输出 Coverage。
在单精度和双精度两个 Coverage 上,“缓冲区”将基于 Coverage 数学精度(基于 BND 的宽度以及小数位数)来计算最小容差。如果计算出的最小容差大于所输入的模糊容差,则使用该最小容差。
投影文件 (PRJ) 会被复制到输出 Coverage。
语法
arcpy.arc.Buffer(in_cover, out_cover, {feature_type}, {buffer_item}, {buffer_table}, {buffer_distance}, {fuzzy_tolerance}, {buffer_shape}, {buffer_side})
参数 | 说明 | 数据类型 |
in_cover | 包含要进行缓冲处理的要素的 Coverage。 | Coverage |
out_cover | 要创建的面缓冲区 Coverage。 | Coverage |
feature_type (可选) | 要进行缓冲处理的要素类:
| String |
buffer_item (可选) | 输入 Coverage 的要素属性表中的某个项,其值用作要素的缓冲距离。如果使用了缓冲表,则缓冲项将在缓冲表中作为查找表项使用。 | String |
buffer_table (可选) | INFO 查找表,列出了针对每个缓冲项的缓冲距离。指定缓冲表的前提是指定了缓冲项。缓冲表至少包含两项:
| INFO Table |
buffer_distance (可选) | 此距离用于在没有指定缓冲项和缓冲表时,在输入 Coverage 要素周围创建缓冲区。默认的缓冲距离为 0.125 Coverage 单位。如果没有为此参数指定值,将使用该默认缓冲距离。 能够计算的最小缓冲距离是 0.00000005 Coverage 单位。如果指定的缓冲距离小于此阈值,将得到空的输出 Coverage。对于面要素,如果使用的缓冲距离为负值,缓冲区将在面的内部生成。 | Double |
fuzzy_tolerance (可选) | 在 out_cover 中坐标之间的最小距离。默认情况下,使用 in_cover 中的最小模糊容差值。 | Double |
buffer_shape (可选) | 对于线,表示在线端点处的缓冲区形状。
| String |
buffer_side (可选) | 对于线,表示在拓扑两侧中的哪一侧生成缓冲区。
| String |
代码示例
缓冲区 (Buffer) 示例(独立脚本)
以下独立脚本演示如何在道路 Coverage 周围创建缓冲区。
# Name: Buffer_Example.py
# Description: Creates a buffer around a road coverage.
# Requirements: ArcInfo Workstation
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inCover = "road"
outCover = "C:/output/roadbuf"
featureType = "LINE"
bufferDistance = 200
bufferShape = "ROUND"
bufferSide = "FULL"
# Execute Buffer
arcpy.Buffer_arc(inCover, outCover, featureType, "", "", bufferDistance, "",
bufferShape, bufferSide)
环境
许可信息
- Basic: 否
- Standard: 否
- Advanced: 需要 已安装 ArcInfo Workstation