Classify Point Cloud Using Trained Model (3D Analyst)

Summary

Classifies a point cloud using a PointCNN classification model.

Usage

  • This tool uses the PointCNN implementation using deep learning frameworks.

    To set up your machine to use deep learning frameworks in ArcGIS Pro, see Install deep learning frameworks for ArcGIS.

  • The tool classifies all points in the input point cloud by default. If any of the existing class codes in the input point cloud are classified properly, make sure to exclude those points from being modified by indicating which class codes should be edited or preserved through the Existing Class Code Handling and Existing Class Codes parameters.

    Learn more about classifying a point cloud with deep learning.

  • The input point cloud must have the same attributes with similar ranges of values as the training data used to develop the classification model. For example, if the trained model used the intensity attribute with a specific range of values, the point cloud must have intensity values in the same range. The point density and distribution should also be similar to the data that was used when training the model.

  • If the spatial reference of the input point cloud does not use a projected coordinate system, the Output Coordinate System environment can be used to define a projected coordinate system that will be used when classifying its points.

Parameters

LabelExplanationData Type
Target Point Cloud

The point cloud that will be classified.

LAS Dataset Layer
Input Model Definition

The input Esri model definition file (*.emd) or deep learning package (*.dlpk) that will be used to classify the point cloud. A web address for a deep learning package that is published on ArcGIS Online or ArcGIS Living Atlas can also be used.

File; String
Target Classification

The class codes from the trained model that will be used to classify the input point cloud. All classes from the input model will be used by default unless a subset is specified.

String
Existing Class Code Handling
(Optional)

Specifies how the editable points from the input point cloud will be defined.

  • Edit All Points —
  • Edit Selected Points —
  • Preserve Selected Points —
String
Existing Class Codes
(Optional)

The classes for which points will be edited or have their original class code designation preserved based on the Existing Class Code Handling parameter value.

Long
Compute statistics
(Optional)

Specifies whether statistics will be computed for the .las files referenced by the LAS dataset. Computing statistics provides a spatial index for each .las file, which improves analysis and display performance. Statistics also enhance the filtering and symbology experience by limiting the display of LAS attributes, such as classification codes and return information, to values that are present in the .las file.

  • Checked—Statistics will be computed. This is the default.
  • Unchecked—Statistics will not be computed.
Boolean
Processing Boundary

The polygon boundary that defines the subset of points to be processed from the input point cloud. Points outside the boundary features will not be evaluated.

Feature Layer
Update pyramid
(Optional)

Specifies whether the LAS dataset pyramid will be updated after the class codes are modified.

  • Checked—The LAS dataset pyramid will be updated. This is the default.
  • Unchecked—The LAS dataset pyramid will not be updated.
Boolean

Derived Output

LabelExplanationData Type
Output Point Cloud

The point cloud that was classified by the deep learning model.

Feature Layer

arcpy.ddd.ClassifyPointCloudUsingTrainedModel(in_point_cloud, in_trained_model, output_classes, {in_class_mode}, {target_classes}, {compute_stats}, boundary, {update_pyramid})
NameExplanationData Type
in_point_cloud

The point cloud that will be classified.

LAS Dataset Layer
in_trained_model

The input Esri model definition file (*.emd) or deep learning package (*.dlpk) that will be used to classify the point cloud. A web address for a deep learning package that is published on ArcGIS Online or ArcGIS Living Atlas can also be used.

File; String
output_classes
[output_classes,...]

The class codes from the trained model that will be used to classify the input point cloud. All classes from the input model will be used by default unless a subset is specified.

String
in_class_mode
(Optional)

Specifies how the editable points from the input point cloud will be defined.

  • EDIT_ALLAll points in the input point cloud will be edited. This is the default.
  • EDIT_SELECTEDOnly points with class codes specified in the target_classes parameter will be edited; all other points remain unchanged.
  • PRESERVE_SELECTEDPoints with class codes specified in the target_classes parameter will be preserved; the remaining points will be edited.
String
target_classes
[target_classes,...]
(Optional)

The classes for which points will be edited or have their original class code designation preserved based on the in_class_mode parameter value.

Long
compute_stats
(Optional)

Specifies whether statistics will be computed for the .las files referenced by the LAS dataset. Computing statistics provides a spatial index for each .las file, which improves analysis and display performance. Statistics also enhance the filtering and symbology experience by limiting the display of LAS attributes, such as classification codes and return information, to values that are present in the .las file.

  • COMPUTE_STATSStatistics will be computed. This is the default.
  • NO_COMPUTE_STATSStatistics will not be computed.
Boolean
boundary

The polygon boundary that defines the subset of points to be processed from the input point cloud. Points outside the boundary features will not be evaluated.

Feature Layer
update_pyramid
(Optional)

Specifies whether the LAS dataset pyramid will be updated after the class codes are modified.

  • UPDATE_PYRAMIDThe LAS dataset pyramid will be updated. This is the default.
  • NO_UPDATE_PYRAMIDThe LAS dataset pyramid will not be updated.
Boolean

Derived Output

NameExplanationData Type
out_point_cloud

The point cloud that was classified by the deep learning model.

Feature Layer

Code sample

ClassifyPointCloudUsingTrainedModel example (stand-alone script)

The following sample demonstrates the use of this tool in the Python window.

import arcpy
arcpy.env.workspace = 'C:/data/'
arcpy.ddd.ClassifyPointCloudUsingTrainedModel('2018_survey.lasd', 'electrical_infrastructure_classification.emd', 
                                              [14, 15], 'EDIT_SELECTED', [0,1])

Licensing information

  • Basic: Requires 3D Analyst
  • Standard: Requires 3D Analyst
  • Advanced: Requires 3D Analyst

Related topics