摘要
计算有关 LAS 数据中捕获的植被点高程测量分布的统计数据。
用法
可考虑使用此工具在激光雷达点集的基础上计算森林覆盖区域的生物量。
此工具需要有地面分类点并且可以处理类代码值为 0、1、2、3、4 和 5 的 LAS 点。
语法
LasHeightMetrics_3d (in_las_dataset, out_location, {base_name}, {statistics}, {height_percentiles}, min_height, min_points, cell_size)
参数 | 说明 | 数据类型 |
in_las_dataset | 待处理的 LAS 数据集。 | LAS Dataset Layer |
out_location | 存放输出栅格数据集的文件夹以及地理数据库。 | Workspace |
base_name (可选) | 输出栅格数据集的基本名称。 | String |
statistics [statistics,...] (可选) | 所计算的未分类和在地面上植被点的统计数据存在于输出栅格中每个像元区域内。
| String |
height_percentiles [height_percentiles,...] (可选) | 用于计算直方图的地面上的高度百分比。 | Long |
min_height | 将评估的点的地面上最低高度。 | Linear Unit |
min_points | 必须存在于给定像元中,以计算 LAS 高度度量的点的最小数量。点数小于指定最小数量的像元在输出中将没有数据。 | Long |
cell_size | 输出栅格数据集的像元大小。 | Linear Unit |
派生输出
名称 | 说明 | 数据类型 |
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())
环境
许可信息
- ArcGIS Desktop Basic: 需要 3D Analyst
- ArcGIS Desktop Standard: 需要 3D Analyst
- ArcGIS Desktop Advanced: 需要 3D Analyst