从点云中提取轨道 (3D Analyst)

摘要

可从 LAS 数据集、点云场景图层包或 I3S 点云图层中的分类铁路轨道中提取铁路轨道线和中心线。

使用情况

  • 此工具需要安装深度学习框架。 要设置计算机以在 ArcGIS Pro 中使用深度学习框架,请参阅安装 ArcGIS 的深度学习框架

  • 此工具需要对轨道点进行分类。 铁路要素由分类的铁路点组成。 LAS 标准采用类 10 铁路,但也可以指定自定义类。 如果提供了多个类,则每个类将被视为代表不同类型的铁路,并将分别处理以产生不同的输出要素。 虽然铁路提取过程可以克服噪音,但减少铁路点分类的错误将会带来更准确的铁路要素。

  • 输出铁路线和中心线将有 CLASS_CODE 字段,用于指示用于生成要素的点类。

  • 铁路交叉口的存在,即道岔将铁路连接或分割成不同的轨道,通常会导致输出路轨和中心线的不连续性。

  • 虽然可以使用 CPU 运行该工具,但建议您使用支持 CUDA 的 NVIDIA GPU 执行此操作。 如果存在多个支持 CUDA 的 GPU,请指定 GPU ID 环境值 -1 以使用所有符合条件的 GPU。

参数

标注说明数据类型
输入点云

包含分类的铁路点的输入 LAS 数据集或点云场景图层。

LAS Dataset Layer; Scene Layer
轨道类代码

将用于轨道点的类代码。

Long
输出轨道线

将从点云中提取的输出 3D 轨道线。

Feature Class
轨道标准
(可选)

指定将使用的轨道标准。 标准描述了轨距和轨道厚度的度量。 该规范将影响用于提取轨道要素的算法。

  • 美国标准 115RE将使用美国铁路工程与维护协会 (AREMA) 定义的 115 磅美国轨道标准。 这是默认设置。
  • 美国标准 132RE将使用 AREMA 定义的 132 磅美国轨道标准。
  • 美国标准 141RE将使用 AREMA 定义的 141 磅美国轨道标准。
  • 欧盟标准 UIC54将使用国际铁路联盟定义的 54.77 千克欧洲轨道标准。
  • 欧盟标准 UIC60将使用国际铁路联盟定义的 60 千克欧洲轨道标准。
  • 自定义将使用不同的标准。 如果指定此选项,请提供轨距和轨道厚度参数的值。
String
输出 3D 中心线
(可选)

表示铁轨中点的输出 3D 中心线。

Feature Class
轨距
(可选)

描述铁路轨道两轨之间内距的轨距。 默认值为 1435 毫米,对应于美国 115 RE 标准,但此值将更新以匹配指定的轨道标准。

Linear Unit
轨道厚度
(可选)

每条轨道顶部的宽度。 默认值为 66.675 毫米,对应于美国 115 RE 标准,但此值将更新以匹配指定的轨道标准。

Linear Unit
水平平滑核距离
(可选)

将基于加权平均值的平滑函数在水平方向上应用到输出轨道线上的 x,y 距离。 该参数将有助于克服不完整、错误分类或嘈杂的铁路点的变形。 默认值为 0.8 米。

Linear Unit
垂直平滑核距离
(可选)

将基于加权平均值的平滑函数在垂直方向上应用到输出轨道线上的 z 距离。 该参数将有助于克服不完整、错误分类或嘈杂的铁路点的变形。 默认设置为 10 米。

Linear Unit
水平轨道容差
(可选)

在 x,y 方向上将使用距离来识别属于给定轨道中的同一轨道的点。 默认值为 10 厘米。

Linear Unit
垂直轨道容差
(可选)

在 z 方向上将使用距离来识别属于给定轨道中的同一轨道的点。 默认值为 3 厘米。

Linear Unit
中心线对齐容差
(可选)

容差距离,将用于对齐给定轨迹的轨道之间的中心线要素。 默认值为 50 毫米。

Linear Unit
轨道拱度检测半径
(可选)

搜索半径,将用于标识定义轨道拱度(即给定铁路轨道最顶部)的连续点。 默认值为 20 米。

Linear Unit
水平简化容差
(可选)

将用于简化 x,y 方向上输出轨道线的距离。 简化后的轨道的水平位置与原来的位置的偏差不会超过这个量。 默认值为 2 毫米。

Linear Unit
垂直简化容差
(可选)

将用于简化 z 方向上输出轨道线的距离。 简化后的轨道高度与原来的位置的偏差不会超过这个量。 默认值为 2 毫米。

Linear Unit
最小输出线长度
(可选)

检测线必须包含在输出线要素中的最小三维长度。 将忽略任何短于此长度的检测线。 默认值为 1 米。

Linear Unit

arcpy.ddd.ExtractRailsFromPointCloud(in_point_cloud, class_codes, out_3d_lines, {rail_standard}, {out_3d_centerlines}, {track_gauge}, {rail_thickness}, {horizontal_smoothing_kernel_distance}, {vertical_smoothing_kernel_distance}, {horizontal_rail_tolerance}, {vertical_rail_tolerance}, {centerline_alignment_tolerance}, {rail_crown_detection_radius}, {horizontal_simplification_tolerance}, {vertical_simplification_tolerance}, {min_line_length})
名称说明数据类型
in_point_cloud

包含分类的铁路点的输入 LAS 数据集或点云场景图层。

LAS Dataset Layer; Scene Layer
class_codes
[class_codes,...]

将用于轨道点的类代码。

Long
out_3d_lines

将从点云中提取的输出 3D 轨道线。

Feature Class
rail_standard
(可选)

指定将使用的轨道标准。 标准描述了轨距和轨道厚度的度量。 该规范将影响用于提取轨道要素的算法。

  • US_115_RE将使用美国铁路工程与维护协会 (AREMA) 定义的 115 磅美国轨道标准。 这是默认设置。
  • US_132_RE将使用 AREMA 定义的 132 磅美国轨道标准。
  • US_141_RE将使用 AREMA 定义的 141 磅美国轨道标准。
  • EU_UIC_54将使用国际铁路联盟定义的 54.77 千克欧洲轨道标准。
  • EU_UIC_60将使用国际铁路联盟定义的 60 千克欧洲轨道标准。
  • CUSTOM将使用不同的标准。 如果指定此选项,请提供轨距和轨道厚度参数的值。
String
out_3d_centerlines
(可选)

表示铁轨中点的输出 3D 中心线。

Feature Class
track_gauge
(可选)

描述铁路轨道两轨之间内距的轨距。 默认值为 1435 毫米,对应于美国 115 RE 标准,但此值将更新以匹配指定的轨道标准。

Linear Unit
rail_thickness
(可选)

每条轨道顶部的宽度。 默认值为 66.675 毫米,对应于美国 115 RE 标准,但此值将更新以匹配指定的轨道标准。

Linear Unit
horizontal_smoothing_kernel_distance
(可选)

将基于加权平均值的平滑函数在水平方向上应用到输出轨道线上的 x,y 距离。 该参数将有助于克服不完整、错误分类或嘈杂的铁路点的变形。 默认值为 0.8 米。

Linear Unit
vertical_smoothing_kernel_distance
(可选)

将基于加权平均值的平滑函数在垂直方向上应用到输出轨道线上的 z 距离。 该参数将有助于克服不完整、错误分类或嘈杂的铁路点的变形。 默认设置为 10 米。

Linear Unit
horizontal_rail_tolerance
(可选)

在 x,y 方向上将使用距离来识别属于给定轨道中的同一轨道的点。 默认值为 10 厘米。

Linear Unit
vertical_rail_tolerance
(可选)

在 z 方向上将使用距离来识别属于给定轨道中的同一轨道的点。 默认值为 3 厘米。

Linear Unit
centerline_alignment_tolerance
(可选)

容差距离,将用于对齐给定轨迹的轨道之间的中心线要素。 默认值为 50 毫米。

Linear Unit
rail_crown_detection_radius
(可选)

搜索半径,将用于标识定义轨道拱度(即给定铁路轨道最顶部)的连续点。 默认值为 20 米。

Linear Unit
horizontal_simplification_tolerance
(可选)

将用于简化 x,y 方向上输出轨道线的距离。 简化后的轨道的水平位置与原来的位置的偏差不会超过这个量。 默认值为 2 毫米。

Linear Unit
vertical_simplification_tolerance
(可选)

将用于简化 z 方向上输出轨道线的距离。 简化后的轨道高度与原来的位置的偏差不会超过这个量。 默认值为 2 毫米。

Linear Unit
min_line_length
(可选)

检测线必须包含在输出线要素中的最小三维长度。 将忽略任何短于此长度的检测线。 默认值为 1 米。

Linear Unit

代码示例

ExtractRailsFromPointCloud 示例(Python 窗口)

下面的示例演示了如何在 Python 窗口中使用此工具。

import arcpy
arcpy.env.workspace = 'C:/data'
arcpy.ddd.ExtractRailsFromPointCloud("Rail_Survey.lasd", 10, "RailTracks.shp", 
                                     out_3d_centerlines="RailCenterlines.shp")

许可信息

  • Basic: 需要 3D Analyst
  • Standard: 需要 3D Analyst
  • Advanced: 需要 3D Analyst

相关主题