按区域统计 LAS 点 (3D Analyst)

摘要

评估与面要素定义的区域叠加的 LAS 点的统计信息。

使用情况

  • 您可通过在图层过滤器设置中选择分类代码、分类标记和返回值的任意组合来使 LAS 数据集图层对所显示和处理的 LAS 点进行限制。 过滤器的定义可在图层属性对话框中或在创建 LAS 数据集图层工具中实现。

  • 考虑使用此工具来确定位于面边界所定义的感兴趣区上的激光雷达点特征。将仅对获取自 LAS 点的高程进行评估。由LAS 数据集引用的表面约束要素提供的任何 Z 值都将被忽略。

  • 此工具将添加多个字段到输入要素的属性表中。如果字段已存在,则会覆盖该字段的值。更新后字段中的值将反映有关与输入要素相重叠的 LAS 点的指定统计信息:

    • Z_MIN - 最低 Z 值。
    • Z_MAX - 最高 Z 值。
    • Z_MEAN - 平均 Z 值。
    • POINT_COUNT - 已评估的 LAS 点的计数。
    • STD_DEV - Z 值的标准差。

参数

标注说明数据类型
输入 LAS 数据集

将要处理的 LAS 数据集。

LAS Dataset Layer
输入面

用于定义将要为其报告统计数据的区域的面。

Feature Layer
输出属性

将要计算的属性。

  • Z_MIN与要素重叠的 LAS 点的最低 Z 值。
  • Z_MAX与要素重叠的 LAS 点的最高 Z 值。
  • Z_MEAN与要素重叠的 LAS 点的平均 Z 值。
  • POINT_COUNT已评估的 LAS 点的计数。
  • STANDARD_DEVIATIONZ 值的标准差。
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,...]

将要计算的属性。

  • Z_MIN与要素重叠的 LAS 点的最低 Z 值。
  • Z_MAX与要素重叠的 LAS 点的最高 Z 值。
  • Z_MEAN与要素重叠的 LAS 点的平均 Z 值。
  • POINT_COUNT已评估的 LAS 点的计数。
  • STANDARD_DEVIATIONZ 值的标准差。
String

派生输出

名称说明数据类型
output_polygons

更新后的输入面要素。

要素类

代码示例

LasPointStatsByArea 示例 1(Python 窗口)

下面的示例演示了如何在 Python 窗口中使用此工具。

import arcpy
from arcpy import env

env.workspace = 'C:/data'
arcpy.ddd.LasPointStatsByArea('city_lidar.lasd', 'study_area.shp', 
                              ['Z_MIN', 'Z_MAX'])
LasPointStatsByArea 示例 2(独立脚本)

下面的示例演示了如何在独立 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())

相关主题