描述
计算输入要素的几何交集。所有图层或要素类中相叠置的要素或要素的各部分将被写入到输出要素类。
备用工具可用于相交操作。有关详细信息,请参阅成对相交工具文档。
成对相交工具与相交工具的相似之处在于二者均计算几何交集,但其不同之处在于,“成对相交”工具根据要素对而非所有要素组合来计算交集。
插图
使用方法
输入要素参数值必须为简单要素:点、多点、线或面。输入要素不能是复杂要素,比如注记要素、尺寸要素或网络要素。
如果输入具有不同几何类型(即,面上的线、线上的点等),则输出要素类几何类型默认与具有最低维度几何的输入要素几何类型相同。例如,如果一个或多个输入的类型为点,则默认输出为点;如果一个或多个输入为线,则默认输出为线;如果所有输入都为面,则默认输出为面。
输出类型参数值可以是具有最低维度几何或较低维度几何的输入要素参数的值。例如,如果所有输入都是面,则输出可以是面、线或点。如果某个输入类型为线但不包含点,则输出可以是线或点。如果任意一个输入是点,则输出类型值只能是点。
输入要素类的属性值将被复制到输出要素类。但是,如果输入是一个或多个通过创建要素图层工具创建的图层并且选中了字段的使用比率策略设置项,那么计算输出属性值时将按输入属性值的一定比例进行计算。如果启用了使用比率策略选项,执行叠加操作时,对于任一要素的分割都将按照输入要素属性值的一定比率来生成输出要素的属性值。输出值将根据输入要素几何被分割的比率得出。例如,如果输入几何被分割成相等的两部分,则每个新要素的属性值都等于输入要素属性值的一半。使用比率策略仅适用于数值字段类型。
警告:
地理处理工具不支持地理数据库要素类或表字段分割策略。
此工具通过切片的方式处理庞大的数据集以便提高性能和可扩展性。有关详细信息,请参阅对大型数据集进行地理处理。
此工具支持并行处理因子环境。如果环境未设置(默认值)或者设置为 0,则将禁用并行处理。将环境设置为 100 将启用并行处理。
目前,面-面、线-面以及点-面叠加操作支持并行处理。
许可:
对于 ArcGIS Desktop Basic 和 Desktop Standard 许可,输入要素类或图层的数量被限定为 2 个。
语法
arcpy.analysis.Intersect(in_features, out_feature_class, {join_attributes}, {cluster_tolerance}, {output_type})
参数 | 说明 | 数据类型 |
in_features [[in_features, {Rank}],...] | 输入要素类或图层列表。要素间距小于聚类容差时,等级较低的要素将捕捉到等级较高的要素。最高等级为 1。有关详细信息,请参阅优先级等级和地理处理工具。 | Value Table |
out_feature_class | 输出要素类。 | Feature Class |
join_attributes (可选) | 指定将输入要素的哪些属性传递到输出要素类。
| String |
cluster_tolerance (可选) | 所有要素坐标(节点和折点)之间的最小距离以及坐标可以沿 x 和/或 y 方向移动的距离。 警告:更改此参数的值可能会导致出现故障或意外结果。建议不要修改此参数。已将其从工具对话框的视图中移除。默认情况下,将使用输入要素类的空间参考 x,y 容差属性。 | Linear Unit |
output_type (可选) | 指定要返回的相交类型。
| String |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 Intersect 函数。
import arcpy
arcpy.env.workspace = "C:/data/RedRiver_basin.gdb"
arcpy.Intersect_analysis(["vegetation_stands", "road_buffer200m", "water_buffer100"], "mysites", "ALL")
arcpy.Intersect_analysis([["vegetation_stands", 2], ["road_buffer200m", 1], ["water_buffer100", 2]],
"mysites_ranked", "ALL")
以下独立脚本将 Intersect 函数用作工作流的一部分,此工作流中,该函数与其他分析工具一起使用来确定所有跨河桥 100 米范围内的植被类型。
#Name: VegRoadIntersect.py
# Purpose: Determine the type of vegetation within 100 meters of all stream
# crossings
# Import system modules
import arcpy
# Set the workspace (to avoid having to type in the full path to the data every
# time)
arcpy.env.workspace = "c:/data/data.gdb"
# Process: Find all stream crossings (points)
inFeatures = ["roads", "streams"]
intersectOutput = "stream_crossings"
arcpy.Intersect_analysis(inFeatures, intersectOutput, "", "", "point")
# Process: Buffer all stream crossings by 100 meters
bufferOutput = "stream_crossings_100m"
bufferDist = "100 meters"
arcpy.Buffer_analysis(intersectOutput, bufferOutput, bufferDist)
# Process: Clip the vegetation feature class to stream_crossing_100m
clipInput = "vegetation"
clipOutput = "veg_within_100m_of_crossings"
arcpy.Clip_analysis(clipInput, bufferOutput, clipOutput)
# Process: Summarize how much (area) of each type of vegetation is found
# within 100 meters of the stream crossings
statsOutput = "veg_within_100m_of_crossings_stats"
statsFields = [["shape_area", "sum"]]
caseField = "veg_type"
arcpy.Statistics_analysis(clipOutput, statsOutput, statsFields, caseField)
环境
许可信息
- Basic: 受限
- Standard: 受限
- Advanced: 是