arcpy.analysis.Buffer(in_features, out_feature_class, buffer_distance_or_field, {line_side}, {line_end_type}, {dissolve_option}, {dissolve_field}, {method})名称说明数据类型in_features
将进行缓冲的输入点、线或面要素。
Feature Layerout_feature_class
包含输出缓冲区的要素类。
Feature Classbuffer_distance_or_field
与要缓冲的输入要素之间的距离。 该距离可以用表示线性距离的某个值来指定,也可以用输入要素中的某个字段(包含用来对每个要素进行缓冲的距离)来指定。
如果未指定线性单位或输入了“未知”,则将使用输入要素空间参考的线性单位。
指定距离时,如果线性单位含有两个单词,如 Decimal Degrees,请将两个单词合并成一个词(例如,20 DecimalDegrees)。
Linear Unit; Fieldline_side(可选)
指定将在输入要素的哪一侧进行缓冲。 该参数仅支持面和线要素。
FULL—对于线,将在线两侧生成缓冲区。 对于面,将在面周围生成缓冲区,并且这些缓冲区将包含并叠加输入要素的区域。 这是默认设置。LEFT—对于线,将在线的拓扑左侧生成缓冲区。 此选项不支持面输入要素。RIGHT—对于线,将在线的拓扑右侧生成缓冲区。 此选项不支持面输入要素。OUTSIDE_ONLY—对于面,仅在输入面的外部生成缓冲区(输入面内部的区域将在输出缓冲区中被擦除)。 此选项不支持线输入要素。
许可:此可选参数不适用于 Desktop Basic 或 Desktop Standard 许可。
Stringline_end_type(可选)
指定线输入要素末端的缓冲区形状。 此参数对于面输入要素无效。
ROUND—缓冲区的末端为圆形,即半圆形。 这是默认设置。FLAT—缓冲区的末端很平整或者为方形,并且在输入线要素的端点处终止。
许可:此可选参数不适用于 Desktop Basic 或 Desktop Standard 许可。
Stringdissolve_option(可选)
指定移除缓冲区重叠要执行的融合类型。
NONE—不考虑重叠,将保持每个要素的独立缓冲区。 这是默认设置。ALL—将所有缓冲区融合为单个要素,从而移除所有重叠。LIST—将融合共享所列字段(传递自输入要素)属性值的所有缓冲区。Stringdissolve_field[dissolve_field,...](可选)
融合输出缓冲区所依据的输入要素的字段列表。 将融合共享所列字段(传递自输入要素)属性值的所有缓冲区。
Fieldmethod(可选)
指定是使用平面方法还是测地线方法来创建缓冲区。
PLANAR—如果输入要素位于投影坐标系中,则将创建欧氏缓冲区。 如果输入要素位于地理坐标系中且缓冲距离的单位为线性单位(米、英尺等,而非诸如度之类的角度单位),则会创建测地线缓冲区。 这是默认设置。您可以使用输出坐标系环境设置指定要使用的坐标系。 例如,如果输入要素位于投影坐标系中,您可以将环境设置为地理坐标系,以便创建测地线缓冲区。GEODESIC—无论使用哪种输入坐标系,均使用形状不变的测地线缓冲区方法创建所有缓冲区。String代码示例Buffer 示例 1(Python 窗口)
以下 Python 窗口脚本演示了如何使用 Buffer 函数。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.analysis.Buffer("roads", "C:/output/majorrdsBuffered", "100 Feet", "FULL",
"ROUND", "LIST", "Distance")Buffer 示例 2(独立脚本)
查找尚未受主要道路严重影响的相应植被区域。
# Name: Buffer.py
# Description: Find areas of suitable vegetation that exclude areas heavily
# impacted by major roads
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/Habitat_Analysis.gdb"
# Select suitable vegetation patches from all vegetation
veg = "vegtype"
suitableVeg = "C:/output/Output.gdb/suitable_vegetation"
whereClause = "HABITAT = 1"
arcpy.analysis.Select(veg, suitableVeg, whereClause)
# Buffer areas of impact around major roads
roads = "majorrds"
roadsBuffer = "C:/output/Output.gdb/buffer_output"
distanceField = "Distance"
sideType = "FULL"
endType = "ROUND"
dissolveType = "LIST"
dissolveField = "Distance"
arcpy.analysis.Buffer(roads, roadsBuffer, distanceField, sideType, endType,
dissolveType, dissolveField)
# Erase areas of impact around major roads from the suitable vegetation patches
eraseOutput = "C:/output/Output.gdb/suitable_vegetation_minus_roads"
xyTol = "1 Meters"
arcpy.analysis.Erase(suitableVeg, roadsBuffer, eraseOutput, xyTol)