Skip To Content

LAS Height Metrics


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


  • 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.


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

The LAS dataset to process.

LAS Dataset Layer

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


The base name for the output raster datasets.


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.

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


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

Linear Unit

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.


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

    # Create temp LAS dataset to reference LAS files that will be tiled
    temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir()), temp_lasd)
    arcpy.ddd.TileLas(temp_lasd, out_folder, basename, out_lasd, las_version=1.4, 
                      point_format=7, file_size=300)
    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:

Licensing information

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