摘要
使用存储在 LAS 数据集所引用的激光雷达文件 (*.las) 中的高程、强度或 RGB 值创建栅格。
插图
用法
-
将 LAS 数据集指定为输入时,将处理它引用的 LAS 文件中的所有数据点。也可以按分类代码、分类标记和回波值来选择激光雷达数据的子集,方法是在 LAS 数据集图层中应用所需的 LAS 点过滤器。可通过图层属性对话或创建 LAS 数据集图层工具定义过滤器。
-
LAS 数据集图层还可用于控制表面约束要素的强化,而该要素可由 LAS 数据集引用。
-
导出较大栅格时,如果使用整型数据可以满足 z 值的精度要求,则考虑将输出数据类型指定为整型以节省磁盘空间。
强烈建议在输入 LAS 数据集定义中包括作为裁剪限制的研究区域边界。一个原因是要防止在调查的真实数据范围外出现插值。其次,如果在尚未正确定义数据区域时使用自然邻域法选项,则可能会严重降低性能。
语法
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)中存储栅格数据集时,不应向栅格数据集的名称添加文件扩展名。在将栅格存储到文件夹中时,可提供文件扩展名以定义栅格的格式,例如 .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 数据采样的方法加快处理时间。 三角测量方法
窗口大小选择方法
| String |
data_type (可选) | 可通过以下关键字定义输出栅格的数据类型:
| String |
sampling_type (可选) | 指定用于解译采样值以定义输出栅格分辨率的方法。
| 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
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 Exception as err:
print(err.args[0])
finally:
arcpy.management.Delete(lasLyr)
环境
许可信息
- ArcGIS for Desktop Basic: 需要 Spatial Analyst 或 3D Analyst
- ArcGIS for Desktop Standard: 是
- ArcGIS for Desktop Advanced: 是