相交 (分析)
插图
用法
-
输入要素必须是简单要素:点、多点、线或面。输入要素不能是复杂要素,比如注记要素、尺寸要素或网络要素。
-
如果输入具有不同几何类型(即,面上的线、线上的点等),则输出要素类几何类型默认与具有最低维度几何的输入要素相同。例如,如果一个或多个输入的类型为点,则默认输出为点;如果一个或多个输入为线,则默认输出为线;如果所有输入都为面,则默认输出为面。
-
输出类型可以是具有最低维度几何或较低维度几何的输入要素类型。例如,如果所有输入都是面,则输出可以是面、线或点。如果某个输入类型为线但不包含点,则输出可以是线或点。如果任何一个输入是点,则输出类型只能是点。
-
输入要素类的属性值将被复制到输出要素类。但是,如果输入图层是通过创建要素图层工具创建的并且选中了字段的“使用比率策略”选项,则将计算输出属性值与输入属性值的比率。如果启用了“使用比率策略”选项,分割叠加操作中的要素时,将按输入要素属性值的一定比例生成要素的属性值。输出值将根据输入要素几何被分割的比率得出。例如,如果输入几何被分割成相等的两部分,则每个新要素的属性值都等于输入要素属性值的一半。“使用比率策略”仅适用于数值字段类型。
警告:地理处理工具不支持地理数据库要素类或表字段分割策略。
-
此工具通过切片的方式处理庞大的数据集以便提高性能和可扩展性。有关详细信息,请参阅对大型数据集进行地理处理。
对于 ArcView 和 Editor 许可证,输入要素类或图层的数量被限定为 2 个。
语法
参数 | 说明 | 数据类型 |
in_features [in_features, {Rank},...] |
输入要素类或图层列表。要素间距小于拓扑容差时,等级较低的要素将捕捉到等级较高的要素。最高等级为一。有关详细信息,请参阅优先级等级和地理处理工具。 | Value Table |
out_feature_class |
输出要素类。 | Feature Class |
join_attributes (可选) |
确定输入要素的哪些属性将传递到输出要素类。
| String |
cluster_tolerance (可选) |
所有要素坐标(结点和折点)之间的最小距离以及坐标可以沿 X 和/或 Y 方向移动的距离。 | Linear unit |
output_type (可选) |
选择要查找的相交类型。
| String |
代码示例
以下 Python 窗口脚本演示了如何在立即模式下使用 Intersect 函数。
import arcpy from arcpy import env 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 函数用作工作流的一部分,此工作流中,Intersect 函数与其他分析工具一起使用来确定所有跨河桥 100 米范围内的植被类型。
#Name: VegRoadIntersect.py # Purpose: Determine the type of vegetation within 100 meters of all stream crossings #Author: ESRI # Import system modules import arcpy from arcpy import env try: # Set the workspace (to avoid having to type in the full path to the data every time) env.workspace = "c:/data/data.gdb" # Process: Find all stream crossings (points) inFeatures = ["roads", "streams"] intersectOutput = "stream_crossings" clusterTolerance = 1.5 arcpy.Intersect_analysis(inFeatures, intersectOutput, "", clusterTolerance, "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 meter 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) except Exception, e: # If an error occurred, print line number and error message import traceback, sys tb = sys.exc_info()[2] print "Line %i" % tb.tb_lineno print e.message