描述
使用存储在 LAS 数据集所引用的激光雷达点中的高程、强度或 RGB 值创建栅格。
插图
使用方法
-
您可通过在图层过滤器设置中选择分类代码、分类标记和返回值的任意组合来使 LAS 数据集图层对所显示和处理的 LAS 点进行限制。过滤器的定义可通过图层属性对话或创建 LAS 数据集图层工具实现。
-
LAS 数据集图层还可用于控制表面约束要素的强化,而该要素可由 LAS 数据集引用。当将 LAS 数据集作为三角化网格面显示或处理时,将强制执行约束。
-
导出较大栅格时,如果使用整型数据可以满足 z 值的精度要求,则考虑将输出数据类型指定为整型以节省磁盘空间。
强烈建议在输入 LAS 数据集定义中包括作为裁剪限制的研究区域边界。其一是为了防止在测量的真实数据范围外出现插值。其次,如果在尚未正确定义数据区域时使用自然邻域法选项,则可能会严重降低性能。
注:
使用BINNING时,仅支持裁剪、擦除和替换限制。不支持隔断线和锚点。三角测量选项支持所有类型的限制,但需要更长时间进行执行。
语法
LasDatasetToRaster(in_las_dataset, out_raster, {value_field}, {interpolation_type}, {data_type}, {sampling_type}, {sampling_value}, {z_factor})
参数 | 说明 | 数据类型 |
in_las_dataset | 待处理的 LAS 数据集。 | LAS Dataset Layer |
out_raster | 输出栅格的位置和名称。在向地理数据库或文件夹(如 Esri Grid)中存储栅格数据集时,不应向栅格数据集的名称添加文件扩展名。在将栅格存储到文件夹中时,可提供文件扩展名以定义栅格的格式,例如 .tif(生成 GeoTIFF)或 .img(生成 ERDAS IMAGINE 格式文件)。 如果栅格存储为 TIFF 文件或存储在地理数据库中,可使用地理处理环境设置指定其栅格压缩类型和质量。 | Raster Dataset |
value_field (可选) | 将用于生成栅格输出的激光雷达数据。
| String |
interpolation_type "BINNING {cell_assignment_type} {void_fill_method}" or "TRIANGULATION {interpolation_method} {point_thinning_type} {point_selection_method} {resolution}" (可选) | 插值法将用于确定输出栅格的像元值。 分组方法提供了使用落入其范围内的点来确定每个输出像元的像元分配方法,还提供了空填充方法来确定不包含任何 LAS 点的像元值。 像元分配方法
空填充方法
三角测量插值方法使用基于 TIN 的方法获得像元值,同时还将使用窗口大小技术通过细化 LAS 数据采样的方法加快处理时间。 三角测量方法
窗口大小选择方法
| Interpolate |
data_type (可选) | 指定输出栅格中所存储数值的类型。
| String |
sampling_type (可选) | 指定用于解译采样值以定义输出栅格分辨率的方法。
| String |
sampling_value (可选) | 指定与采样类型结合使用以定义输出栅格分辨率的值。 | Double |
z_factor (可选) | Z 值将乘上的系数。此值通常用于转换 Z 线性单位来匹配 XY 线性单位。默认值为 1,此时高程值保持不变。如果输入表面的空间参考具有已指定线性单位的 Z 基准,则将禁用此参数。 | Double |
代码示例
下面的示例演示了如何在 Python 窗口中使用此工具。
arcpy.env.workspace = 'C:/data'
arcpy.LasDatasetToRaster_3d('baltimore.lasd', 'baltimore.tif', 'INTENSITY',
'TRIANGULATION LINEAR WINDOW_SIZE 10', 'FLOAT',
'CELLSIZE', 10, 3.28)
下面的示例演示了如何在独立 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)
# 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)
print(arcpy.GetMessages())
except arcpy.ExecuteError:
print(arcpy.GetMessages())
except Exception as err:
print(err.args[0])
finally:
arcpy.management.Delete(lasLyr)
许可信息
- Basic: 需要 Spatial Analyst 或 3D Analyst
- Standard: 是
- Advanced: 是