Set LAS Class Codes Using Features (3D Analyst)

Summary

Classifies LAS points that intersect the two-dimensional extent of input features.

Usage

  • LAS points that intersect the two-dimensional position of the input points, lines, and polygons, along with any buffers, will be reclassified. To classify LAS points using three-dimensional distance from 3D features, use the Locate LAS Points By Proximity tool.

  • The buffer distance is particularly important for points and lines, since it is less likely that a given LAS point will fall exactly on the line or have the same coordinate as the input point. The distance units applied for the buffer are based on the linear units of the LAS dataset's spatial reference.

  • If the LAS dataset layer's points have been filtered, only the filtered points that intersect the input features will be reclassified. You can filter the LAS dataset layer using any combination of classification codes, classification flags, and return values using the Layer Properties dialog box or the Make LAS Dataset Layer tool.

  • ArcGIS uses the LAS classification scheme defined by the American Society for Photogrammetry and Remote Sensing (ASPRS). Learn more about lidar point classification.

Parameters

LabelExplanationData Type
Input LAS Dataset

The LAS dataset to process.

LAS Dataset Layer
Input Feature Class

One or more input features that will be used to define class code values for the lidar files referenced by the LAS dataset. The classification flag option default is No change but you can assign the flag using Set or remove it using Clear. Each feature has the following options:

  • Features—The features used for reclassifying LAS points.
  • Buffer Distance—The distance that input features are buffered by prior to determining the LAS points that intersect the buffered area.
  • New Class—The class code to be assigned.
  • Synthetic—The Synthetic classification flag is used to identify points that were not obtained from a lidar sensor but were included in the .las file, such as survey control points that may not have been captured by the lidar sensor.
  • KeyPoint—The Model Key Point classification flag represents a subset of points that are required to capture a particular level of detail in the lidar collection. Historically, this flag was associated with representing thinned ground points within a specific z-tolerance.
  • Withheld—The Withheld classification flag signifies erroneous data that should be excluded from analysis and visualization.
  • Overlap—The Overlap designation identifies points from overlapping scans and is only supported in LAS 1.4 files.
Value Table
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
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
Updated Input LAS Dataset

The updated LAS dataset.

LAS Dataset Layer

arcpy.ddd.SetLasClassCodesUsingFeatures(in_las_dataset, feature_class, {compute_stats}, {update_pyramid})
NameExplanationData Type
in_las_dataset

The LAS dataset to process.

LAS Dataset Layer
feature_class
[[features, buffer_distance, new_class, synthetic, key_point, withheld, overlap],...]

Enter each feature and its associated options that will be used to define the classification operation as a list of lists, for example, [['feature1', 6, 9, 'NO_CHANGE', 'SET', 'CLEAR', 'NO_CHANGE'], ['feature 2', 0, 6, 'NO_CHANGE', 'NO_CHANGE', 'NO_CHANGE', 'NO_CHANGE']]. Each feature has the following options:

  • features—The features used for reclassifying LAS points.
  • buffer_distance—The buffer distance applied to the input features prior to determining the LAS points that intersect its area.
  • new_class—The class code to be assigned.
  • synthetic—The Synthetic classification flag is used to identify points that were not obtained from a lidar sensor.
  • key_point—The Model Key Point classification flag represents a subset of points that can be used to capture a desired level of detail of a given class code.
  • withheld—The Withheld classification flag signifies erroneous data that should be excluded from analysis and visualization.
  • overlap—The Overlap designation identifies points from overlapping scans and is only supported in LAS 1.4 files.
Value Table
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
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
derived_las_dataset

The updated LAS dataset.

LAS Dataset Layer

Code sample

SetLasClassCodesUsingFeatures example 1 (Python window)

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

arcpy.env.workspace = 'C:/data'
arcpy.ddd.SetLasClassCodesUsingFeatures("test.lasd", ["lake.shp", 0, 9],
                                       compute_stats="COMPUTE_STATS")
SetLasClassCodesUsingFeatures example 2 (stand-alone script)

The following sample demonstrates the use of this tool in a stand-alone Python script.

'''**********************************************************************
Name: Assign Withheld Classification Flag to Outlier Points in LAS Files
Description: Uses Locate Outliers to identify points in LAS files that
             should be assigned the 'withheld' classification flag.
             Designed for use as a script tool.
**********************************************************************'''
# Import system modules
import arcpy

# Set Local Variables
lasD = arcpy.GetParameterAsText(0)
outliers = 'in_memory/outliers'

# Execute LocateOutliers
arcpy.ddd.LocateOutliers(lasD, outliers, 'APPLY_HARD_LIMIT', -10,
                         350, 'APPLY_COMPARISON_FILTER', 1.2, 120,
                         0.8, 8000)

# Execute SetLasClassCodeUsingFeatures
arcpy.ddd.SetLasClassCodesUsingFeatures(lasd, [["outliers.shp", 5,
                                                "NO_CHANGE", "NO_CHANGE",
                                                "NO_CHANGE", "SET"]])

Licensing information

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

Related topics