Skip To Content

Classify LAS Building

Summary

Classifies building rooftop points in aerial lidar data.

Illustration

Classification of building rooftop points.

Usage

  • The LAS data must have ground points classified before you can classify building rooftop points. Consider using the Classify LAS Ground tool if ground points have not been classified. The ground points must have a class code value of 2. If ground points have a class code value other than 2, use the Change LAS Class Codes tool to reassign the class code accordingly.

  • LAS points with class code values of 0, 1, and 6 will be evaluated to determine if they fit the characteristics of building rooftops. Points classified as buildings that do not meet this criteria will be reassigned to a class code value of 1 unless the option to reuse existing building classified points is specified.

Syntax

ClassifyLasBuilding(in_las_dataset, {min_height}, min_area, {compute_stats}, {extent}, boundary, {process_entire_files}, point_spacing, {reuse_building}, {photogrammetric_data})
ParameterExplanationData Type
in_las_dataset

The LAS dataset to be classified.

LAS Dataset Layer
min_height
(Optional)

The height from the ground that defines the lowest point from which rooftop points will be identified.

Linear Unit
min_area

The smallest area of coplanar points that will be used to establish the presence of a building rooftop.

Areal Unit
compute_stats
(Optional)

Specifies whether statistics should 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, like classification codes and return information, to values that are present in the LAS file.

  • COMPUTE_STATSStatistics will be computed.
  • NO_COMPUTE_STATSStatistics will not be computed. This is the default.
Boolean
extent
(Optional)

Specifies the extent of the data that will be evaluated by this tool.

Extent
boundary

A polygon feature that defines the area of interest to be processed by this tool.

Feature Layer
process_entire_files
(Optional)

Specifies how the processing extent is applied.

  • PROCESS_EXTENTOnly LAS points that intersect the area of interest will be processed. This is the default.
  • PROCESS_ENTIRE_FILESIf any portion of a LAS file intersects the area of interest, all the points in that LAS file, including those outside the area of interest, will be processed.
Boolean
point_spacing

The average spacing of LAS points that will be used for establishing the presence of building rooftops. This value will default to the average spacing calculated for the LAS dataset.

Linear Unit
reuse_building
(Optional)

Specifies whether the existing building classified points will be reused or reevaluated.

Specifies whether the existing building classified points will be reused or reevaluated.

  • RECLASSIFY_BUILDINGExisting building classified points will be reevaluated to fit the criteria for plane detection, and points that do not fit the specified area and height will be assigned a value of 1. This is the default.
  • REUSE_BUILDINGExisting building classified points will contribute to plane detection process, but will not be reclassified in the event they do not meet the criteria specified in the tool's execution. Use this option if the existing classification is considered desirable.
Boolean
photogrammetric_data
(Optional)

Specifies whether the points in the LAS file originated from a photogrammetrically derived point cloud.

Specifies whether the points in the LAS file originated from a photogrammetrically derived point cloud.

  • NOT_PHOTOGRAMMETRIC_DATAThe points in the LAS file were obtained from a lidar survey, not from a photogrammetric technique for producing point clouds. This is the default.
  • PHOTOGRAMMETRIC_DATAThe points in the LAS file were obtained from a photogrammetric technique for producing point clouds.
Boolean

Derived Output

NameExplanationData Type
derived_las_dataset

The LAS dataset that is classified for building rooftops.

LAS Dataset Layer

Code sample

ClassifyLasBuilding example 1 (Python window)

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

arcpy.env.workspace = 'C:/data'

arcpy.ClassifyLasBuilding_3d('Highland.lasd', minHeight='9 feet', 
                             minArea='30 Square Feet', compute_stats=True)
ClassifyLasBuilding example 2 (stand-alone script)

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

'''****************************************************************************
       Name: Tile & Classify LAS Files
Description: Creates & classifies tiled LAS files.
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math

in_las = arcpy.GetParameterAsText(1) # The LAS files that need to be tiled
out_folder = arcpy.GetParameterAsText(2) # folder for LAS files
basename = arcpy.GetParameterAsText(3) # basename for output files
out_lasd = arcpy.GetParameterAsText(4) # output LAS dataset


try:
    # Create temp LAS dataset to reference LAS files that will be tiled
    temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir())
    arcpy.management.CreateLasDataset(in_las, temp_lasd)
    arcpy.ddd.TileLas(temp_lasd, out_folder, basename, out_lasd, las_version=1.4, 
                      point_format=7, file_size=300)
    arcpy.management.Delete(temp_lasd)
    arcpy.ddd.ClassifyLasGround(out_lasd, method='AGGRESSIVE')
    arcpy.ddd.ClassifyLasBuilding(out_lasd, min_height='3 Meters', min_area='4 Meters')
    arcpy.ddd.ClassifyLasByHeight(out_lasd, height_classification=[(3, 6), (4,20), (5,70)],
                                  noise='All Noise', compute_stats='COMPUTE_STATS')

except arcpy.ExecuteError:
    print(arcpy.GetMessages())

Licensing information

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

Related topics