Skip To Content

LAS Point Statistics By Area

Summary

Evaluates the statistics of LAS points that overlay the area defined by polygon features.

Usage

  • You can have the LAS dataset layer limit the LAS points that are displayed and processed by selecting any combination of classification codes, classification flags, and return values in the layer's filter settings. The filters can be defined through the Layer Properties dialog box or the Make LAS Dataset Layer tool.

  • Consider using this tool to determine the characteristics of lidar points over regions of interest defined by polygon boundaries. Only elevation obtained from LAS points will be evaluated. Any Z-values contributed by surface constraint features referenced by the LAS dataset will be ignored.

  • This tool adds several fields to the attribute table of the input features. If the fields already exist, their values will be overwritten. The values in the updated fields will reflect the indicated statistics about LAS points that overlap the input feature:

    • Z_MIN—The lowest Z-value.
    • Z_MAX—The highest Z-value.
    • Z_MEAN—The average Z-value.
    • POINT_COUNT—The tally of LAS points that were evaluated.
    • STD_DEV—The standard deviation of Z-values.

Syntax

LasPointStatsByArea(in_las_dataset, in_features, out_property)
ParameterExplanationData Type
in_las_dataset

The LAS dataset to process.

LAS Dataset Layer
in_features

The polygon that defines the area for which statistics will be reported.

Feature Layer
out_property
[out_property,...]

The properties that will be calculated.

  • Z_MINThe lowest Z value of LAS points overlapping the feature.
  • Z_MAXThe highest Z value of LAS points overlapping the feature.
  • Z_MEANThe average Z value of LAS points overlapping the feature.
  • POINT_COUNTThe tally of LAS points that were evaluated.
  • STANDARD_DEVIATIONThe standard deviation of Z values.
String

Derived Output

NameExplanationData Type
output_polygons

The updated input polygon features.

Feature Class

Code sample

LasPointStatsByArea example 1 (Python window)

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

import arcpy
from arcpy import env

env.workspace = 'C:/data'
arcpy.ddd.LasPointStatsByArea('city_lidar.lasd', 'study_area.shp', 
                              ['Z_MIN', 'Z_MAX'])
LasPointStatsByArea example 2 (stand-alone script)

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

'''****************************************************************************
       Name: Extract Building Footprints
Description: Extract footprint from lidar points classified as buildings, 
             regularize its geometry, and calculate the building height.

****************************************************************************'''
import arcpy

lasd = arcpy.GetParameterAsText(0)
footprint = arcpy.GetParameterAsText(1)

try:
    lasd_layer = 'building points'
    arcpy.management.MakeLasDatasetLayer(lasd, lasd_layer, class_code=6)
    temp_raster = 'in_memory/bldg_raster'
    arcpy.management.LasPointStatsAsRaster(lasd_layer, temp_raster,
                                           'PREDOMINANT_CLASS', 'CELLSIZE', 2.5)
    temp_footprint = 'in_memory/footprint'
    arcpy.conversion.RasterToPolygon(temp_raster, temp_footprint)
    arcpy.ddd.RegularizeBuildingFootprint(temp_footprint, footprint, 
                                          method='RIGHT_ANGLES')
    arcpy.ddd.LasPointStatsByArea(lasd_layer, footprint, ['MIN_Z', 'MAX_Z'])
    arcpy.management.AddField(footprint, 'Height', 'Double')
    arcpy.management.CalculateField(footprint, 'Height', 
                                    "round('!Z_Max! - !Z_Min!', 2)", 
                                    'PYTHON_9.3')


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

Environments

Licensing information

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

Related topics