Label | Explanation | Data Type |
Input Point Cloud
| The input LAS dataset or point cloud scene layer containing the classified railway points. | LAS Dataset Layer; Scene Layer |
Rail Class Codes
| The class codes that will be used for rail points. | Long |
Output Rail Lines
| The output 3D rail lines that will be extracted from the point cloud. | Feature Class |
Rail Standard (Optional) | Specifies the rail standard that will be used. The standard describes the measurements of the track gauge and rail thickness. The specification will impact the algorithm that will be used for extracting the rail features.
| String |
Output 3D Centerlines
(Optional) | The output 3D center line that represents the middle of the rail track. | Feature Class |
Track Gauge
(Optional) | The track gauge that describes the inner distance between the two rails of a railway track. The default is 1435 millimeters, which corresponds to the US 115 RE standard, but this value will be updated to match the specified rail standard. | Linear Unit |
Rail Thickness
(Optional) | The width of the top part of each rail. The default value is 66.675 millimeters, which corresponds to the US 115 RE standard, but this value will be updated to match the specified rail standard. | Linear Unit |
Horizontal Smoothing Kernel Distance
(Optional) | The x,y distance that will be used to apply a weighted average-based smoothing function in the horizontal direction onto the output rail lines. This parameter will help to overcome the distortions of incomplete, misclassified, or noisy rail points. The default is 0.8 meters. | Linear Unit |
Vertical Smoothing Kernel Distance
(Optional) | The z-distance that will be used to apply a weighted average-based smoothing function in the vertical direction onto the output rail lines. This parameter will help to overcome the distortions of incomplete, misclassified, or noisy rail points. The default is 10 meters. | Linear Unit |
Horizontal Rail Tolerance
(Optional) | The distance that will be used in the x,y direction to identify points that belong to the same rail in a given track. The default is 10 centimeters. | Linear Unit |
Vertical Rail Tolerance
(Optional) | The distance that will be used in the z-direction to identify points that belong to the same rail in a given track. The default is 3 centimeters. | Linear Unit |
Centerline Alignment Tolerance
(Optional) | The tolerance distance that will be used to align the centerline feature between the rails of a given track. The default is 50 millimeters. | Linear Unit |
Rail Crown Detection Radius
(Optional) | The search radius that will be used to identify continuous points that define the rail crown, which is the topmost portion of a given rail track. The default is 20 meters. | Linear Unit |
Horizontal Simplification Tolerance
(Optional) | The distance that will be used to simplify the output rail line in the x,y direction. The horizontal position of the simplified rail will not deviate from the original by more than this amount. The default is 2 millimeters. | Linear Unit |
Vertical Simplification Tolerance
(Optional) | The distance that will be used to simplify the output rail line in the z-direction. The height of the simplified rail will not deviate from the original by more than this amount. The default is 2 millimeters. | Linear Unit |
Minimum Output Line Length
(Optional) | The minimum three-dimensional length that a detected line must have to be included in the output line features. Any detected line that is shorter than this length will be ignored. The default is 1 meter. | Linear Unit |
Summary
Extracts rail track lines and center lines from classified railroad tracks in a LAS dataset, point cloud scene layer package, or I3S point cloud layer.
Usage
This tool requires the installation of deep learning frameworks. To set up your machine to use deep learning frameworks in ArcGIS Pro, see Install deep learning frameworks for ArcGIS.
This tool requires the rail points to be classified. The rail features are made from classified rail points. The LAS standard uses class 10 for rail, although custom classes can be specified. If more than one class is provided, each class is assumed to represent a different type of rail and will be processed separately to produce distinct output features. Although the rail extraction process can overcome noise, reducing errors in the classification of railway points will result in more accurate railway features.
The output rail lines and centerlines will have a CLASS_CODE field that indicates the point class that was used to generate the feature.
The presence of rail junctures, where switches join or split the railway into different tracks, will typically produce discontinuities in the output rails and centerlines.
While the tool can be run using the CPU, it is recommended that you use a CUDA-capable NVIDIA GPU for this operation. If multiple CUDA-capable GPUs are present, specify a GPU ID environment value of -1 to use all eligible GPUs.
Parameters
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})
Name | Explanation | Data Type |
in_point_cloud | The input LAS dataset or point cloud scene layer containing the classified railway points. | LAS Dataset Layer; Scene Layer |
class_codes [class_codes,...] | The class codes that will be used for rail points. | Long |
out_3d_lines | The output 3D rail lines that will be extracted from the point cloud. | Feature Class |
rail_standard (Optional) | Specifies the rail standard that will be used. The standard describes the measurements of the track gauge and rail thickness. The specification will impact the algorithm that will be used for extracting the rail features.
| String |
out_3d_centerlines (Optional) | The output 3D center line that represents the middle of the rail track. | Feature Class |
track_gauge (Optional) | The track gauge that describes the inner distance between the two rails of a railway track. The default is 1435 millimeters, which corresponds to the US 115 RE standard, but this value will be updated to match the specified rail standard. | Linear Unit |
rail_thickness (Optional) | The width of the top part of each rail. The default value is 66.675 millimeters, which corresponds to the US 115 RE standard, but this value will be updated to match the specified rail standard. | Linear Unit |
horizontal_smoothing_kernel_distance (Optional) | The x,y distance that will be used to apply a weighted average-based smoothing function in the horizontal direction onto the output rail lines. This parameter will help to overcome the distortions of incomplete, misclassified, or noisy rail points. The default is 0.8 meters. | Linear Unit |
vertical_smoothing_kernel_distance (Optional) | The z-distance that will be used to apply a weighted average-based smoothing function in the vertical direction onto the output rail lines. This parameter will help to overcome the distortions of incomplete, misclassified, or noisy rail points. The default is 10 meters. | Linear Unit |
horizontal_rail_tolerance (Optional) | The distance that will be used in the x,y direction to identify points that belong to the same rail in a given track. The default is 10 centimeters. | Linear Unit |
vertical_rail_tolerance (Optional) | The distance that will be used in the z-direction to identify points that belong to the same rail in a given track. The default is 3 centimeters. | Linear Unit |
centerline_alignment_tolerance (Optional) | The tolerance distance that will be used to align the centerline feature between the rails of a given track. The default is 50 millimeters. | Linear Unit |
rail_crown_detection_radius (Optional) | The search radius that will be used to identify continuous points that define the rail crown, which is the topmost portion of a given rail track. The default is 20 meters. | Linear Unit |
horizontal_simplification_tolerance (Optional) | The distance that will be used to simplify the output rail line in the x,y direction. The horizontal position of the simplified rail will not deviate from the original by more than this amount. The default is 2 millimeters. | Linear Unit |
vertical_simplification_tolerance (Optional) | The distance that will be used to simplify the output rail line in the z-direction. The height of the simplified rail will not deviate from the original by more than this amount. The default is 2 millimeters. | Linear Unit |
min_line_length (Optional) | The minimum three-dimensional length that a detected line must have to be included in the output line features. Any detected line that is shorter than this length will be ignored. The default is 1 meter. | Linear Unit |
Code sample
The following sample demonstrates the use of this tool in the Python window:
import arcpy
arcpy.env.workspace = 'C:/data'
arcpy.ddd.ExtractRailsFromPointCloud("Rail_Survey.lasd", 10, "RailTracks.shp",
out_3d_centerlines="RailCenterlines.shp")
Environments
Licensing information
- Basic: Requires 3D Analyst
- Standard: Requires 3D Analyst
- Advanced: Requires 3D Analyst