LAS 数据集转栅格 (转换)

描述

使用存储在 LAS 数据集所引用的激光雷达点中的高程、强度或 RGB 值创建栅格。

插图

LAS 数据集转栅格

使用方法

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

  • LAS 数据集图层还可用于控制表面约束要素的强化,而该要素可由 LAS 数据集引用。当将 LAS 数据集作为三角化网格面显示或处理时,将强制执行约束。

  • 导出较大栅格时,如果使用整型数据可以满足 z 值的精度要求,则考虑将输出数据类型指定为整型以节省磁盘空间。

  • 强烈建议在输入 LAS 数据集定义中包括作为裁剪限制的研究区域边界。其一是为了防止在测量的真实数据范围外出现插值。其次,如果在尚未正确定义数据区域时使用自然邻域法选项,则可能会严重降低性能。

    注:

    使用BINNING时,仅支持裁剪、擦除和替换限制。不支持隔断线和锚点。三角测量选项支持所有类型的限制,但需要更长时间进行执行。

语法

arcpy.conversion.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
(可选)

将用于生成栅格输出的激光雷达数据。

  • ELEVATION激光雷达文件的高程将用于创建栅格。这是默认设置。
  • INTENSITY激光雷达文件的强度信息将用于创建栅格。
  • RGB激光雷达点的 RGB 值将用于创建 3 波段影像。
String
interpolation_type
"BINNING {cell_assignment_type} {void_fill_method}" or "TRIANGULATION {interpolation_method} {point_thinning_type} {point_selection_method} {resolution}"
(可选)

插值法将用于确定输出栅格的像元值。

分组方法提供了使用落入其范围内的点来确定每个输出像元的像元分配方法,还提供了空填充方法来确定不包含任何 LAS 点的像元值。

像元分配方法

  • AVERAGE - 分配像元中所有点的平均值。这是默认设置。
  • MINIMUM - 分配在像元内的点中找到的最小值。
  • MAXIMUM - 分配在像元内的点中找到的最大值。
  • IDW - 使用反距离权重插值确定像元值。
  • NEAREST - 使用最邻近分配法确定像元值。

空填充方法

  • NONE - 将 NoData 分配到像元。
  • SIMPLE - 立即求出 NoData 像元周围数据像元的平均值以消除较小的空区域。
  • LINEAR - 三角测量横跨空区域,并使用三角测量值的线性插值确定像元值。这是默认设置。
  • NATURAL_NEIGHBOR - 使用自然邻域法插值确定像元值。

三角测量插值方法使用基于 TIN 的方法获得像元值,同时还将使用窗口大小技术通过细化 LAS 数据采样的方法加快处理时间。

三角测量方法

  • Linear - 使用线性插值确定像元值。
  • Natural Neighbors - 使用自然邻域法插值确定像元值。

窗口大小选择方法

  • Maximum - 保持具有每个窗口大小中最高值的点。这是默认设置。
  • Minimum - 保持具有每个窗口大小中最低值的点。
  • Closest To Mean - 保持其值最接近窗口大小中所有点的平均值的点。
Interpolate
data_type
(可选)

指定输出栅格中所存储数值的类型。

  • FLOAT输出栅格将使用 32 位浮点型,支持介于 -3.402823466e+38 到 3.402823466e+38 之间的值。这是默认设置。
  • INT输出栅格将使用合适的整型位深度。该选项可将 z 值四舍五入为最接近的整数值,并将该整数写入每个栅格像元值。
String
sampling_type
(可选)

指定用于解译采样值以定义输出栅格分辨率的方法。

  • OBSERVATIONS定义分割 LAS 数据集范围的最长边的像元数。
  • CELLSIZE定义输出栅格的像元大小。这是默认设置。
String
sampling_value
(可选)

指定与采样类型结合使用以定义输出栅格分辨率的值。

Double
z_factor
(可选)

Z 值将乘上的系数。此值通常用于转换 Z 线性单位来匹配 XY 线性单位。默认值为 1,此时高程值保持不变。如果输入表面的空间参考具有已指定线性单位的 Z 基准,则将禁用此参数。

Double

代码示例

LasDatasetToRaster 示例 1(Python 窗口)

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

arcpy.env.workspace = 'C:/data'
arcpy.LasDatasetToRaster_3d('baltimore.lasd', 'baltimore.tif', 'INTENSITY',
                          'TRIANGULATION LINEAR WINDOW_SIZE 10', 'FLOAT',
                          'CELLSIZE', 10, 3.28)
LasDatasetToRaster 示例 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)

    # 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: 是

相关主题