相交 (分析)

描述

计算输入要素的几何交集。所有图层或要素类中相叠置的要素或要素的各部分将被写入到输出要素类。

备用工具可用于相交操作。有关详细信息,请参阅成对相交工具文档。

成对相交工具与相交工具的相似之处在于二者均计算几何交集,但其不同之处在于,“成对相交”工具根据要素对而非所有要素组合来计算交集。

了解有关“相交”工作原理的详细信息

插图

相交图示

使用方法

  • 输入要素参数值必须为简单要素:点、多点、线或面。输入要素不能是复杂要素,比如注记要素、尺寸要素或网络要素。

  • 如果输入具有不同几何类型(即,面上的线、线上的点等),则输出要素类几何类型默认与具有最低维度几何的输入要素几何类型相同。例如,如果一个或多个输入的类型为点,则默认输出为点;如果一个或多个输入为线,则默认输出为线;如果所有输入都为面,则默认输出为面。

  • 输出类型参数值可以是具有最低维度几何或较低维度几何的输入要素参数的值。例如,如果所有输入都是面,则输出可以是面、线或点。如果某个输入类型为线但不包含点,则输出可以是线或点。如果任意一个输入是点,则输出类型值只能是点。

  • 输入要素类的属性值将被复制到输出要素类。但是,如果输入是一个或多个通过创建要素图层工具创建的图层并且选中了字段的使用比率策略设置项,那么计算输出属性值时将按输入属性值的一定比例进行计算。如果启用了使用比率策略选项,执行叠加操作时,对于任一要素的分割都将按照输入要素属性值的一定比率来生成输出要素的属性值。输出值将根据输入要素几何被分割的比率得出。例如,如果输入几何被分割成相等的两部分,则每个新要素的属性值都等于输入要素属性值的一半。使用比率策略仅适用于数值字段类型。

    警告:

    地理处理工具不支持地理数据库要素类或表字段分割策略

  • 此工具通过切片的方式处理庞大的数据集以便提高性能和可扩展性。有关详细信息,请参阅对大型数据集进行地理处理

  • 此工具支持并行处理因子环境。如果环境未设置(默认值)或者设置为 0,则将禁用并行处理。将环境设置为 100 将启用并行处理。

    目前,面-面、线-面以及点-面叠加操作支持并行处理。

  • 许可:

    对于 ArcGIS Desktop BasicDesktop 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
(可选)

指定将输入要素的哪些属性传递到输出要素类。

  • ALL输入要素的所有属性都将传递到输出要素类。这是默认设置。
  • NO_FID除 FID 外,将输入要素的其余所有属性都传递到输出要素类。
  • ONLY_FID仅输入要素的 FID 字段将传递到输出要素类。
String
cluster_tolerance
(可选)

所有要素坐标(节点和折点)之间的最小距离以及坐标可以沿 x 和/或 y 方向移动的距离。

警告:

更改此参数的值可能会导致出现故障或意外结果。建议不要修改此参数。已将其从工具对话框的视图中移除。默认情况下,将使用输入要素类的空间参考 x,y 容差属性。

Linear Unit
output_type
(可选)

指定要返回的相交类型。

  • INPUT所返回的相交要素的几何类型与具有最低维度几何的输入要素的几何类型相同。如果所有输入都是面,则输出要素类将包含面。如果一个或多个输入是线但不包含点,则输出是线。如果一个或多个输入是点,则输出要素类将包含点。这是默认设置。
  • LINE返回的交集为线。仅当输入中不包含点时,此选项才有效。
  • POINT返回的交集为点。如果输入是线或面,则输出将是多点要素类。
String

代码示例

Intersect 示例(Python 窗口)

以下 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 示例 2(独立脚本)

以下独立脚本将 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: 是

相关主题