LAS 高度度量 (3D Analyst)

描述

计算有关 LAS 数据中捕获的植被点高程测量分布的统计数据。

使用方法

  • 该工具可生成高于地面的点的统计衍生物,以便用户更好地理解森林冠层。系统将分析分配了类代码值 0 或 1(用于表示未分类的点)的 LAS 点,以及分配了类代码值 3、4 和 5(用于表示植被点)的 LAS 点。

  • 在执行此工具之前,必须对所处理的 LAS 数据进行地面点分类。可以使用分类 LAS 地面点工具,以满足此项要求。

  • 此工具将为每个指定的统计选项和高度百分比输出一个栅格。每个栅格的名称都将以指定的基本名称以及高度度量或空间统计数据开头。对于平均值栅格,文件名上将追加单词“mean”。对于标准差,文件名上将添加“stdev”。对于中位数绝对差,文件名上将添加“mad”。

  • 请使用最小高度参数来排除极低点,当地面点尚未完全分类的情况下尤其需要如此,原因是这些点可能会使此工具的结果失真。

  • 使用最小点数参数来排除地面上所含点数过少的区域,以生成有意义的结果。

语法

LasHeightMetrics(in_las_dataset, out_location, {base_name}, {statistics}, {height_percentiles}, min_height, min_points, cell_size, {raster_format})
参数说明数据类型
in_las_dataset

待处理的 LAS 数据集。

LAS Dataset Layer
out_location

存放输出栅格数据集的文件夹以及地理数据库。一旦输出位置为文件夹,则生成的栅格数据集将采用 TIFF 格式。

Workspace
base_name
(可选)

输出栅格数据集的基本名称。

String
statistics
[statistics,...]
(可选)

指定针对输出栅格中每个像元区域内的未分类点和地面上的植被点所计算的统计数据。

  • MEANLAS 点的高度平均值。
  • KURTOSISLAS 点高度变化的剧烈程度。
  • SKEWNESSLAS 点标称高度的偏差方向,用于指示不对称的级别和方向。
  • STANDARD_DEVIATION点高度的变化。
  • MEDIAN_ABSOLUTE_DEVIATION中等高度偏差的中值。
String
height_percentiles
[height_percentiles,...]
(可选)

像元中指定百分比的点所低于的高度。例如,此值为 95 意味着生成的像元值表明出现了 95% 的点高于地面的高度。

Long
min_height

将评估的点的地面上最小高度。

Linear Unit
min_points

必须存在于给定像元中,以计算高度度量的点的最小数量。点数小于指定最小数量的像元在输出中将没有数据。

Long
cell_size

输出栅格数据集的像元大小。

Linear Unit
raster_format
(可选)

指定当输出位置为文件夹时将创建的栅格格式。

  • TIFF输出将以 GeoTIFF 格式创建。这是默认设置。
  • IMG输出将以 ERDAS IMAGINE 格式创建。
  • ESRI_GRID输出将以 Esri Grid 格式创建。
String

派生输出

名称说明数据类型
derived_out_location

输出栅格数据集的位置。

工作空间
output_rasters

输出栅格数据集。

栅格数据集

代码示例

LasHeightMetrics 示例 1(Python 窗口)

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

arcpy.env.workspace = 'C:/data'

arcpy.ClassifyLasBuilding_3d('Highland.lasd', minHeight='9 feet', 
                             minArea='30 Square Feet', compute_stats=True)
LasHeightMetrics 示例 2(独立脚本)

下面的示例演示了如何在独立 Python 脚本中使用此工具。

'''****************************************************************************
       Name: Tile & Classify LAS Files
Description: Creates & classifies tiled LAS files.
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math

in_las = arcpy.GetParameterAsText(1) # The LAS files that need to be tiled
out_folder = arcpy.GetParameterAsText(2) # folder for LAS files
basename = arcpy.GetParameterAsText(3) # basename for output files
out_lasd = arcpy.GetParameterAsText(4) # output LAS dataset


try:
    # Create temp LAS dataset to reference LAS files that will be tiled
    temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir())
    arcpy.management.CreateLasDataset(in_las, temp_lasd)
    arcpy.ddd.TileLas(temp_lasd, out_folder, basename, out_lasd, las_version=1.4, 
                      point_format=7, file_size=300)
    arcpy.management.Delete(temp_lasd)
    arcpy.ddd.ClassifyLasGround(out_lasd, method='AGGRESSIVE')
    arcpy.ddd.ClassifyLasBuilding(out_lasd, min_height='3 Meters', min_area='4 Meters')
    arcpy.ddd.ClassifyLasByHeight(out_lasd, height_classification=[(3, 6), (4,20), (5,70)],
                                  noise='All Noise', compute_stats='COMPUTE_STATS')

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

许可信息

  • Basic: 需要 3D Analyst
  • Standard: 需要 3D Analyst
  • Advanced: 需要 3D Analyst

相关主题