LAS 数据集转栅格 (转换)

摘要

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

插图

LAS 数据集转栅格

使用情况

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

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

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

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

    注:

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

参数

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

将要处理的 LAS 数据集。

LAS Dataset Layer
输出栅格

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

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

Raster Dataset
值字段
(可选)

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

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

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

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

像元分配方法

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

空填充方法

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

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

三角测量方法

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

窗口大小选择方法

  • Maximum - 保持具有每个窗口大小中最高值的点。这是默认设置。
  • Minimum - 保持具有每个窗口大小中最低值的点。
  • Closest To Mean - 保持其值最接近窗口大小中所有点的平均值的点。
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}"
(可选)

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

分组方法提供了使用落入其范围内的点来确定每个输出像元的像元分配方法,还提供了空填充方法来确定不包含任何 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采样值将根据输出栅格中最长的列或行来定义输出栅格中的列数或行数。 通过将输出范围的最长边除以采样值参数中的输入将得出像元大小。 如果针对最长边为 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)

相关主题