相交 (Analysis)
插图
用法
-
输入要素必须是简单要素:点、多点、线或面。输入要素不能是复杂要素,比如注记要素、尺寸要素或网络要素。
-
如果输入具有不同几何类型(即,面上的线、线上的点等),则输出要素类几何类型默认与具有最低维度几何的输入要素相同。例如,如果一个或多个输入的类型为点,则默认输出为点;如果一个或多个输入为线,则默认输出为线;如果所有输入都为面,则默认输出为面。
-
输出类型可以是具有最低维度几何或较低维度几何的输入要素类型。例如,如果所有输入都是面,则输出可以是面、线或点。如果某个输入类型为线但不包含点,则输出可以是线或点。如果任何一个输入是点,则输出类型只能是点。
-
输入要素类的属性值将被复制到输出要素类。但是,如果输入是一个或多个通过创建要素图层工具创建的图层并且选中了字段的使用比率策略设置项,那么计算输出属性值时将按输入属性值的一定比例进行计算。如果启用了使用比率策略选项,执行叠加操作时,对于任一要素的分割都将按照输入要素属性值的一定比率来生成输出要素的属性值。输出值将根据输入要素几何被分割的比率得出。例如,如果输入几何被分割成相等的两部分,则每个新要素的属性值都等于输入要素属性值的一半。使用比率策略仅适用于数值型字段。
警告:地理处理工具不支持地理数据库要素类或表字段分割策略。
-
此工具通过切片的方式处理庞大的数据集以便提高性能和可扩展性。有关详细信息,请参阅对大型数据集进行地理处理。
对于 ArcGIS for Desktop Basic 和 标准版 许可,输入要素类或图层的数量被限定为 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