描述
创建可将过滤器应用于 LAS 点并可控制表面约束要素强化的 LAS 数据集图层。
使用
LAS 数据集图层可用于过滤激光雷达数据以便后续分析。例如,通过过滤类代码 2(该代码表示地面测量)可轻松创建数字高程模型 (DEM),并随后将生成的图层用作 LAS 数据集转栅格工具的输入。
-
LAS 格式支持根据美国摄影测量与遥感协会 (ASPRS) 制定的规范对每个点进行分类。ArcGIS 平台应用为 LAS 文件版本 1.4 指定的分类方案:
类别值 分类类型 0
从不分类
1
未分配
2
地面
3
低植被
4
中等植被
5
高植被
6
建筑物
7
低噪音
8
模型关键点/保留
9
水利
10
铁路
11
路面
12
重叠/保留
13
钢丝护网
14
导线
15
输电塔
16
线 - 连接器
17
桥板
18
高噪音
19 – 63
为 ASPRS 定义保留(LAS 1.1 至 1.3 最高支持类代码 31)
32 – 255
可由用户定义(仅 LAS 1.0 和 1.4 的特定版本支持)
语法
MakeLasDatasetLayer(in_las_dataset, out_layer, {class_code}, {return_values}, {no_flag}, {synthetic}, {keypoint}, {withheld}, {surface_constraints})
参数 | 说明 | 数据类型 |
in_las_dataset | 待处理的 LAS 数据集。 | LAS Dataset Layer |
out_layer | 生成的 LAS 数据集图层的名称。可使用反斜线或正斜线表示图层组。 | LAS Dataset Layer |
class_code [class_code,...] (可选) | 允许通过分类代码过滤 LAS 点。有效值的范围将取决于 LAS 数据集引用的 LAS 文件版本所支持的类代码。默认情况下会选择所有类代码。
| String |
return_values [return_values,...] (可选) | 指定用于过滤 LAS 点的返回值。未指定任何内容时,使用所有返回值。
| String |
no_flag (可选) | 指示是否应启用未分配任何分类标记的数据点以用于显示和分析。
| Boolean |
synthetic (可选) | 指示应启用标记为合成点的数据点,还是启用源自非激光雷达数据源的点,以用于显示和分析。
| Boolean |
keypoint (可选) | 指示应启用标记为模型关键点的数据点,还是启用不应被细化掉的重要测量点,以用于显示和分析。
| Boolean |
withheld (可选) | 指示是否应启用标记为保留点的数据点(这些点通常表示不需要的噪音测量点)以用于显示和分析。
| Boolean |
surface_constraints [surface_constraints,...] (可选) | 图层中将启用的表面约束要素的名称。默认情况下,所有约束均启用。 | String |
代码示例
创建 LAS 数据集图层 (MakeLasDatasetLayer) 示例 1(Python 窗口)
下面的示例演示了如何在 Python 窗口中使用此工具。
import arcpy
from arcpy import env
arcpy.CheckOutExtension('3D')
env.workspace = 'C:/data'
arcpy.MakeLasDatasetLayer_management('Baltimore.lasd', 'Baltimore Layer',
2, 'LAST', 'INCLUDE_UNFLAGGED',
'EXCLUDE_SYNTHETIC', 'INCLUDE_KEYPOINT',
'EXCLUDE_WITHHELD')
创建 LAS 数据集图层 (MakeLasDatasetLayer) 示例 2(独立脚本)
下面的示例演示了如何在独立 Python 脚本中使用此工具。
'''*********************************************************************
Name: Export Elevation Raster from Ground LAS Measurements
Description: This script demonstrates how to export
ground measurements from LAS files to a raster using a
LAS dataset. This sample is designed to be used as a script
tool.
*********************************************************************'''
# Import system modules
import arcpy
try:
# Set Local Variables
inLas = arcpy.GetParameterAsText(0)
recursion = arcpy.GetParameterAsText(1)
surfCons = arcpy.GetParameterAsText(2)
classCode = arcpy.GetParameterAsText(3)
returnValue = arcpy.GetParameterAsText(4)
spatialRef = arcpy.GetParameterAsText(5)
lasD = arcpy.GetParameterAsText(6)
outRaster = arcpy.GetParameterAsText(7)
cellSize = arcpy.GetParameter(8)
zFactor = arcpy.GetParameter(9)
if arcpy.ProductInfo == 'ArcView':
arcpy.CheckOutExtension('3D')
# Execute CreateLasDataset
arcpy.management.CreateLasDataset(inLas, lasD, recursion, surfCons, sr)
# Execute MakeLasDatasetLayer
lasLyr = arcpy.CreateUniqueName('Baltimore')
arcpy.management.MakeLasDatasetLayer(lasD, lasLyr, classCode, returnValue)
# Execute LasDatasetToRaster
arcpy.conversion.LasDatasetToRaster(lasLyr, outRaster, 'ELEVATION',
'TRIANGULATION LINEAR WINDOW_SIZE 10', 'FLOAT',
'CELLSIZE', cellSize, zFactor)
arcpy.GetMessages()
except arcpy.ExecuteError:
print(arcpy.GetMessages())
except Exception as err:
print(err.args[0])
finally:
arcpy.management.Delete(lasLyr)
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是