LAS 数据集转栅格 (转换)

摘要

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

插图

“LAS 数据集转栅格”工具图示

使用情况

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

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

  • 当导出较大的栅格时,如果可以通过整型数据表示 z 值的精度要求,则可以将输出数据类型参数值指定为整型以节省磁盘空间。

  • 建议在输入 LAS 数据集定义中包括作为裁剪限制的研究区域边界。 其一是为了防止在测量的真实数据范围外出现插值。 另外,如果数据区域未正确定义,使用自然邻域选项可能会显著影响性能。

    注:

    选择分箱作为插值类型时,仅支持剪裁、擦除和替换约束; 不支持隔断线和锚点。 而三角剖分插值类型则支持所有约束,但运行时间较长。

参数

标注说明数据类型
输入 LAS 数据集

将要处理的 LAS 数据集。

LAS Dataset Layer
输出栅格

输出栅格的位置和名称。 将栅格数据集存储到地理数据库或者诸如 Esri Grid 等的文件夹中时,请勿向栅格数据集的名称添加文件扩展名。 在将栅格存储到文件夹中时,可提供文件扩展名以定义栅格的格式,例如 .tif(生成 GeoTIFF)或 .img(生成 ERDAS IMAGINE 格式文件)。

如果栅格存储为 .tif 文件或存储在地理数据库中,则可以使用地理处理环境设置指定栅格压缩类型和质量。

Raster Dataset
值字段
(可选)

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

  • 高程激光雷达文件的高程将用于创建栅格。 这是默认设置。
  • 强度激光雷达文件的强度信息将用于创建栅格。
  • RGB激光雷达点的 RGB 值将用于创建 3 波段影像。
String
插值类型
(可选)

插值类型将用于确定输出栅格的像元值。 可以选择分箱或三角剖分作为插值类型。 每种类型都有其独特的像元值分配选项。

当将插值类型设置为图格化时,将逐个像元地评估点云。 包含点的像元值由像元内的点决定,而不含点的像元可以插值或标记为 NoData。 图格化类型的可用选项包括:

  • 像元分配 - 用于为包含点的像元分配值的方法。
    • 平均值 - 分配像元中所有点的平均值。 这是默认设置。
    • 最小值 - 分配在像元内的点中找到的最小值。
    • 最大值 - 分配在像元内的点中找到的最大值。
    • IDW - 使用反距离权重插值确定像元值。
    • 最近 - 使用最邻近分配法确定像元值。
  • 空白填充方法 - 用于为不包含点的像元分配值的方法。
    • - 为不含点的像元分配 NoData。
    • 简单 - 通过周围像元的平均值为无点像元赋值, 消除小空白。
    • 线性 - 在空白区域构建三角测量表面,并在 TIN 上使用线性插值来确定空像元的值。 此方法适用于大面积空白,并为默认选项。
    • 自然邻域 - 使用自然邻域插值确定无点像元值。 建议在使用此方法时将 LAS 数据集设置为裁剪面约束。

插值类型设置为三角测量时,像元值是通过从 LAS 数据集的点和表面约束构建内存中的 TIN 表面来推导的。 内存中的 TIN 用于为输出栅格插值像元值。 三角测量类型的可用选项包括:

  • 插值方法
    • 线性 - 使用线性插值确定像元值。
    • 自然邻域 - 使用自然邻域法插值确定像元值。
  • 稀疏化类型
    • 无稀疏化 - 在构建中间 TIN 表面时,不会对 LAS 数据集的点进行稀疏处理。
    • 窗口大小 - 通过将数据范围划分为方形条柱并在每个条柱中选择一个点来对 LAS 数据集的点进行稀疏处理。 用于细分数据区域的条柱大小将由分辨率参数提供的值确定,所选点基于选择方法参数指定的选项。
  • 选择方法
    • 最大值 - 保持具有每个窗口大小中最高值的点。 这是默认设置。
    • 最小值 - 保持具有每个窗口大小中最低值的点。
    • 最接近均值 - 保持其值最接近窗口大小中所有点的平均值的点。

当点稀疏化类型设置为窗口大小时,点在插值输出栅格之前会通过将数据划分为方形格网进行子采样。 格网的大小基于提供的分辨率值。 该值的单位将基于 LAS 数据集的横坐标系统的线性单位。

分辨率值是将用于在点稀疏化类型设置为窗口大小时细分数据的二维格网的每一边的长度。 此值的单位基于数据坐标系的线性单位。

Interpolate
输出数据类型
(可选)

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

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

指定将如何解释采样值参数以定义输出栅格的像元大小。

  • 观测采样值将根据输出栅格中最长的列或行来定义输出栅格中的列数或行数。 通过将输出范围的最长边除以采样值参数中的输入将得出像元大小。 如果针对最长边为 23.67 千米的数据集使用观测值 3000,则输出栅格的分辨率将为 7.89 米。 这种方法提供了一种非常有用的方法,用于创建可快速生成的具有可预测大小的输出。
  • 像元大小像元大小将由采样值参数直接定义。 这是默认设置。
String
采样值
(可选)

采样类型参数结合使用以定义输出栅格像元大小的值。

Double
Z 因子
(可选)

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

Double

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 格式文件)。

如果栅格存储为 .tif 文件或存储在地理数据库中,则可以使用地理处理环境设置指定栅格压缩类型和质量。

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}"
(可选)

插值类型将用于确定输出栅格的像元值。 可以选择分箱或三角剖分作为插值类型。 每种类型都有其独特的像元值分配选项。

当将插值类型设置为图格化时,将逐个像元地评估点云。 包含点的像元值由像元内的点决定,而不含点的像元可以插值或标记为 NoData。 图格化类型的可用选项包括:

  • 像元分配 - 用于为包含点的像元分配值的方法。
    • 平均值 - 分配像元中所有点的平均值。 这是默认设置。
    • 最小值 - 分配在像元内的点中找到的最小值。
    • 最大值 - 分配在像元内的点中找到的最大值。
    • IDW - 使用反距离权重插值确定像元值。
    • 最近 - 使用最邻近分配法确定像元值。
  • 空白填充方法 - 用于为不包含点的像元分配值的方法。
    • - 为不含点的像元分配 NoData。
    • 简单 - 通过周围像元的平均值为无点像元赋值, 消除小空白。
    • 线性 - 在空白区域构建三角测量表面,并在 TIN 上使用线性插值来确定空像元的值。 此方法适用于大面积空白,并为默认选项。
    • 自然邻域 - 使用自然邻域插值确定无点像元值。 建议在使用此方法时将 LAS 数据集设置为裁剪面约束。

插值类型设置为三角测量时,像元值是通过从 LAS 数据集的点和表面约束构建内存中的 TIN 表面来推导的。 内存中的 TIN 用于为输出栅格插值像元值。 三角测量类型的可用选项包括:

  • 插值方法
    • 线性 - 使用线性插值确定像元值。
    • 自然邻域 - 使用自然邻域法插值确定像元值。
  • 稀疏化类型
    • 无稀疏化 - 在构建中间 TIN 表面时,不会对 LAS 数据集的点进行稀疏处理。
    • 窗口大小 - 通过将数据范围划分为方形条柱并在每个条柱中选择一个点来对 LAS 数据集的点进行稀疏处理。 用于细分数据区域的条柱大小将由分辨率参数提供的值确定,所选点基于选择方法参数指定的选项。
  • 选择方法
    • 最大值 - 保持具有每个窗口大小中最高值的点。 这是默认设置。
    • 最小值 - 保持具有每个窗口大小中最低值的点。
    • 最接近均值 - 保持其值最接近窗口大小中所有点的平均值的点。

当点稀疏化类型设置为窗口大小时,点在插值输出栅格之前会通过将数据划分为方形格网进行子采样。 格网的大小基于提供的分辨率值。 该值的单位将基于 LAS 数据集的横坐标系统的线性单位。

分辨率值是将用于在点稀疏化类型设置为窗口大小时细分数据的二维格网的每一边的长度。 此值的单位基于数据坐标系的线性单位。

Interpolate
data_type
(可选)

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

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

指定将如何解释采样值参数以定义输出栅格的像元大小。

  • OBSERVATIONS采样值将根据输出栅格中最长的列或行来定义输出栅格中的列数或行数。 通过将输出范围的最长边除以采样值参数中的输入将得出像元大小。 如果针对最长边为 23.67 千米的数据集使用观测值 3000,则输出栅格的分辨率将为 7.89 米。 这种方法提供了一种非常有用的方法,用于创建可快速生成的具有可预测大小的输出。
  • CELLSIZE像元大小将由采样值参数直接定义。 这是默认设置。
String
sampling_value
(可选)

采样类型参数结合使用以定义输出栅格像元大小的值。

Double
z_factor
(可选)

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

Double

代码示例

LasDatasetToRaster 示例 1(Python 窗口)

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

arcpy.env.workspace = 'C:/data'
arcpy.ddd.LasDatasetToRaster('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: 是

相关主题