描述
用于计算 3D 空间中线的相交和重叠线段。
使用方法
该工具是成对运行。如果多条线相交,则输出点的数量将是相交线的数学组合。例如,三条相交线将产生三个输出点 - 一条用于第一和第二个交点,一条用于第一和第三个交点,最后一条用于第二和第三个交点。同样,如果四条输入线相交,则将产生六个输出点,这些点将分别用于第一和第二、第一和第三、第一和第四,第二和第三,第二和第四,以及第三和第四条线的交点。
输入要素必须具有空间索引。使用添加空间索引工具创建新索引(专门针对 shapefile)或重新构建现有索引(如果无法确定其是否正确)。
如果提供 2D 线作为输入,则将假定所有顶点都位于高程零处。
如果由于用于检测交点的允许的垂直公差的原因,两条具有不同 z 值的线相交,则输出点将使用两个高程中的较高者。同样,当两个 z 值不同的线段相交时,输出线要素将基于 z 值较高的线段。
某些输出线可能由多个部分组成,这是因为两条输入线具有多个不连续的重叠部分,或者两条线在 z 方向上越来越近或越来越远。
将属性传递到输出时,放置在第一组字段中的值来自第一个输入线,而第二组字段中的值来自第二个输入线。如果指定两个输入线要素图层,则第一和第二条输入线分别来自第一和第二个输入线要素图层。如果仅指定一个输入线要素图层,则规则是相同的,除非列看起来是重复的。
该输出点要素将包含以下属性字段:
- I3L_TYPE - 值 0 表示该点标记重叠线段的终点,而值 1 则表示该点是两条线的交点。
- I3L_GROUP - 用于标识在水平空间中共享相同位置的所有点的唯一值。
- I3L_OID1 - 第一个相交线要素的要素 ID。
- I3L_OID2 - 第二个相交线要素的要素 ID。
- I3L_LINE1Z - 第一条线上的交点的 Z 值。
- I3L_LINE2Z - 第二条线上的交点的 Z 值。
- I3L_Z_DIFF - 交点的 XY 位置处的两条输入线之间的 Z 差。
语法
arcpy.3d.Intersect3DLines(in_lines, {max_z_diff}, {join_attributes}, {out_point_fc}, {out_line_fc})
参数 | 说明 | 数据类型 |
in_lines [in_lines,...] | 将针对交点进行评估的线要素。输入可以包含一或两个线要素图层或类。如果指定了一个输入,则将每个要素与该要素类中的所有其他要素进行比较。没有要素将与其自身进行比较。 | Feature Layer |
max_z_diff (可选) | 相交线段之间的最大垂直距离。 | Linear Unit |
join_attributes (可选) | 指定将输入要素的哪些属性传递到输出要素类。
| String |
out_point_fc (可选) | 输出点代表输入线相交的位置,其中包括重叠线段的起点和终点。 | Feature Class |
out_line_fc (可选) | 输出线表示存在于输入线之间的重叠部分。 | Feature Class |
派生输出
名称 | 说明 | 数据类型 |
out_intersection_count | 输入线的相交位置的数量。 | 长整型 |
代码示例
下面的示例演示了如何在 Python 窗口中使用此工具。
import arcpy
arcpy.env.workspace = 'C:/data'
arcpy.ddd.Intersect3DLines(['floor_centerlines.shp', 'stairs.shp'], '2 Meters',
'ONLY_FID', 'intersection_pts.shp')
许可信息
- Basic: 需要 3D Analyst 或 ArcGIS Location Referencing
- Standard: 需要 3D Analyst 或 ArcGIS Location Referencing
- Advanced: 需要 3D Analyst 或 ArcGIS Location Referencing