LAS 数据集转栅格 (Conversion)

许可等级:BasicStandardAdvanced

摘要

使用存储在 LAS 数据集所引用的激光雷达文件 (*.las) 中的高程、强度或 RGB 值创建栅格。

插图

LAS Dataset to Raster

用法

语法

LasDatasetToRaster_conversion (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)中存储栅格数据集时,不应向栅格数据集的名称添加文件扩展名。可提供文件扩展名,以在向文件夹存储时定义栅格的格式:

  • .bil—Esri BIL
  • .bip—Esri BIP
  • .bsq—Esri BSQ
  • .dat—ENVI DAT
  • .img—ERDAS IMAGINE
  • .png—PNG
  • .tif—TIFF

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

Raster Dataset
value_field
(可选)

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

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

该插值方法用于生成栅格。

BINNING - 使用像元范围内的点获得像元值(除不包含其范围内点的像元外)。下列选项可用于此技术:

  • 像元分配类型 - 该方法用于为包含其范围内的点的任意像元定义值。
    • AVERAGE - 分配像元中所有点的平均值。这是默认设置。
    • MINIMUM - 分配在像元内的点中找到的最小值。
    • MAXIMUM - 分配在像元内的点中找到的最大值。
    • IDW - 使用反距离权重插值确定像元值。
    • NEAREST - 使用最邻近分配法确定像元值。
  • 空填充方法 - 该插值方法用于为不包含其范围内的点的像元定义值。
    • NONE - 分配给像元的 NoData。
    • SIMPLE - 立即求出 NoData 像元周围数据像元的平均值以消除较小的空区域。
    • LINEAR - 三角测量横跨空区域,并使用三角测量值的线性插值确定像元值。这是默认设置。
    • NATURAL_NEIGHBOR - 使用自然邻域法插值确定像元值。

TRIANGULATION - 通过 LAS 数据集的三角测量表达的插值测量获得像元值。下列选项可用于此技术:

  • 插值方法 - 用于定义像元值的插值方法:
    • LINEAR - 使用线性插值根据三角测量的 LAS 数据集表面确定像元值。
    • NATURAL_NEIGHBOR - 使用自然邻域法插值确定像元值。
  • 点细化类型 - 确定是否对 LAS 数据点进行细化:
    • NONE - 不会对 LAS 数据点进行细化。这是默认设置。
    • WINDOW_SIZE - 通过确定满足按窗口大小定义的区域内选择条件的点对 LAS 点进行细化。
  • 点选择方法 - 该选择方法用于在使用 WINDOW_SIZE 细化时对 LAS 数据点进行细化:
    • MAXIMUM - 保持具有每个窗口大小中最高值的点。这是默认设置。
    • MINIMUM - 保持具有每个窗口大小中最低值的点。
    • CLOSEST_TO_MEAN - 保持其值最接近窗口大小中所有点的平均值的点。
  • 分辨率 - 定义细化点所使用的窗口大小面积的数值。
String
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,此时高程值保持不变。

Double

代码实例

LasDatasetToRaster 示例 1(Python 窗口)

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

import arcpy
from arcpy import env

arcpy.CheckOutExtension('3D')
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
import exceptions, sys, traceback

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:
    # Get the traceback object
    tb = sys.exc_info()[2]
    tbinfo = traceback.format_tb(tb)[0]
    # Concatenate error information into message string
    pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
          .format(tbinfo, str(sys.exc_info()[1]))
    msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
    # Return python error messages for script tool or Python Window
    arcpy.AddError(pymsg)
    arcpy.AddError(msgs)
    
finally:
    arcpy.management.Delete(lasLyr)

环境

相关主题

许可信息

ArcGIS for Desktop Basic: 需要 Spatial Analyst 或 3D Analyst
ArcGIS for Desktop Standard: 是
ArcGIS for Desktop Advanced: 是
5/10/2014