Skip To Content

LAS Height Metrics

Summary

Calculates statistics about the distribution of elevation measurements of vegetation points captured in LAS data.

Usage

  • Consider using this tool to calculate biomass over lidar collections from forested areas.

  • This tool requires the presence of ground classified points, and processes LAS point with class codes value of 0, 1, 3, 4, and 5.

Syntax

LasHeightMetrics_3d (in_las_dataset, out_location, {base_name}, {statistics}, {height_percentiles}, min_height, min_points, cell_size)
ParameterExplanationData Type
in_las_dataset

The LAS dataset to process.

LAS Dataset Layer
out_location

The folder or geodatabase where the output raster datasets will reside.

Workspace
base_name
(Optional)

The base name for the output raster datasets.

String
statistics
[statistics,...]
(Optional)

The statistics calculated for the unclassified and vegetation points above the ground that are inside the area of each cell in the output raster.

  • MEANThe average height of the LAS points.
  • KURTOSISThe sharpness of the change in the height of the LAS points.
  • SKEWNESSThe direction of deviation from the nominal height of the LAS points, which indicates the level and direction of asymmetry.
  • STANDARD_DEVIATIONThe variation of the height of the points.
  • MEDIAN_ABSOLUTE_DEVIATIONThe median value of the deviation from the median height.
String
height_percentiles
[height_percentiles,...]
(Optional)

The height percentiles above ground for which to calculate the histogram.

Long
min_height

The lowest height above ground for points that will be evaluated.

Linear Unit
min_points

The lowest number of points that must be present in a given cell in order to calculate LAS height metrics. Cells with lower number of points than the specified minimum will have no data in the output.

Long
cell_size

The cell size fo the output raster datasets.

Linear Unit

Code sample

LasHeightMetrics 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)
LasHeightMetrics 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

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

Related topics