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
arcpy.ddd.LasPointStatsByArea(in_las_dataset, in_features, out_property)
Parameter | Explanation | Data 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.
| String |
Derived Output
Name | Explanation | Data 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