LAS Point Statistics By Area (3D Analyst)

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 on the Layer Properties dialog box or in 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.

Parameters

LabelExplanationData Type
Input LAS Dataset

The LAS dataset that will be processed.

LAS Dataset Layer
Input Polygons

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

Feature Layer
Output 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

LabelExplanationData Type
Updated Input Polygons

The updated input polygon features.

Feature Class

arcpy.ddd.LasPointStatsByArea(in_las_dataset, in_features, out_property)
NameExplanationData Type
in_las_dataset

The LAS dataset that will be processed.

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

Related topics