标注 | 说明 | 数据类型 |
输入 LAS 数据集 | 将要处理的 LAS 数据集。 | LAS Dataset Layer |
输入面
| 用于定义将要为其报告统计数据的区域的面。 | Feature Layer |
输出属性
| 将要计算的属性。
| String |
派生输出
标注 | 说明 | 数据类型 |
更新后的输入面 | 更新后的输入面要素。 | 要素类 |
评估与面要素定义的区域叠加的 LAS 点的统计信息。
您可通过在图层过滤器设置中选择分类代码、分类标记和返回值的任意组合来使 LAS 数据集图层对所显示和处理的 LAS 点进行限制。 过滤器的定义可在图层属性对话框中或在创建 LAS 数据集图层工具中实现。
考虑使用此工具来确定位于面边界所定义的感兴趣区上的激光雷达点特征。将仅对获取自 LAS 点的高程进行评估。由LAS 数据集引用的表面约束要素提供的任何 Z 值都将被忽略。
此工具将添加多个字段到输入要素的属性表中。如果字段已存在,则会覆盖该字段的值。更新后字段中的值将反映有关与输入要素相重叠的 LAS 点的指定统计信息:
标注 | 说明 | 数据类型 |
输入 LAS 数据集 | 将要处理的 LAS 数据集。 | LAS Dataset Layer |
输入面
| 用于定义将要为其报告统计数据的区域的面。 | Feature Layer |
输出属性
| 将要计算的属性。
| String |
标注 | 说明 | 数据类型 |
更新后的输入面 | 更新后的输入面要素。 | 要素类 |
arcpy.ddd.LasPointStatsByArea(in_las_dataset, in_features, out_property)
名称 | 说明 | 数据类型 |
in_las_dataset | 将要处理的 LAS 数据集。 | LAS Dataset Layer |
in_features | 用于定义将要为其报告统计数据的区域的面。 | Feature Layer |
out_property [out_property,...] | 将要计算的属性。
| String |
名称 | 说明 | 数据类型 |
output_polygons | 更新后的输入面要素。 | 要素类 |
下面的示例演示了如何在 Python 窗口中使用此工具。
import arcpy
from arcpy import env
env.workspace = 'C:/data'
arcpy.ddd.LasPointStatsByArea('city_lidar.lasd', 'study_area.shp',
['Z_MIN', 'Z_MAX'])
下面的示例演示了如何在独立 Python 脚本中使用此工具。
'''****************************************************************************
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())