LAS Height Metrics (3D Analyst)

Summary

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

Usage

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

Syntax

arcpy.3d.LasHeightMetrics(in_las_dataset, out_location, {base_name}, {statistics}, {height_percentiles}, min_height, min_points, cell_size, {raster_format})
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. When the output location is a folder, the resulting raster datasets will be in the TIFF format.

Workspace
base_name
(Optional)

The base name for the output raster datasets.

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

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.
String
height_percentiles
[height_percentiles,...]
(Optional)

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.

Long
min_height

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

Linear Unit
min_points

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.

Long
cell_size

The cell size of the output raster datasets.

Linear Unit
raster_format
(Optional)

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

Derived Output

NameExplanationData Type
derived_out_location

The location of the output raster datasets.

Workspace
output_rasters

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


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