LAS Height Metrics (3D Analyst)


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


  • This tool generates statistical derivatives of points above the ground to provide greater understanding of the forest canopy. LAS points assigned with a class code value of 0 or 1, which represent unclassified points, and 3, 4, and 5, which represent vegetation points, are analyzed.

  • The LAS data being processed must have ground points classified prior to executing this tool. The Classify LAS Ground tool can be used to meet this requirement.

  • This tool will output one raster for each statistic option and height percentile specified. The name of each raster will begin with the specified base name and the height metric or spatial statistic. For the mean raster, the word "mean" is appended to the file name. For standard deviation, "stdev" will be added to the file name. For median absolute deviation, "mad" will be added to the file name.

  • Use the Minimum Height parameter to exclude very low points, particularly if ground points have not been thoroughly classified, as they may distort the results of this tool.

  • Use the Minimum Number of Points parameter to exclude areas that contain too few points above the ground to produce meaningful results.


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

The LAS dataset to process.

LAS Dataset Layer

The folder or geodatabase where the output raster datasets will reside. When the output location is a folder, the resulting raster datasets will be in the TIFF format.


The base name for the output raster datasets.


Specifies the statistics calculated for the unclassified and vegetation points above the ground that are within 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 at which the specified percentage of points in the cell fall below. For example, a value of 95 means the resulting cell values indicate the height at which 95 percent of points above the ground occur.


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

Linear Unit

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


The cell size of the output raster datasets.

Linear Unit

Specifies the raster format that will be created when the output location is a folder.

  • TIFFOutput will be created in the GeoTIFF format. This is the default.
  • IMGOutput will be created in the ERDAS IMAGINE format.
  • ESRI_GRIDOutput will be created in the Esri Grid format.

Derived Output

NameExplanationData Type

The location of the output raster datasets.


The output raster datasets.

Raster Dataset

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

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

Related topics