创建 LAS 数据集 (Data Management)

许可等级:BasicStandardAdvanced

摘要

创建引用一个或多个 LAS 文件和可选表面约束要素的 LAS 数据集。

插图

Create LAS Dataset

用法

语法

CreateLasDataset_management (input, out_las_dataset, {folder_recursion}, {in_surface_constraints}, {spatial_reference}, {compute_stats}, {relative_paths})
参数说明数据类型
input
[input,...]

LAS 文件和包含将被 LAS 数据集引用的 LAS 文件的文件夹。该信息可以以下形式提供:包含所有输入数据的字符串,或包含特定数据元素的字符串列表(如:"lidar1.las; lidar2.las; folder1; folder2" 或者["lidar1.las", "lidar2.las", "folder1", "folder2"])。有关指定输入列表的详细信息,请参阅了解工具语法

File; Folder
out_las_dataset

将创建的 LAS 数据集。

LAS Dataset
folder_recursion
(可选)

指定位于输入文件夹子目录中的激光雷达数据是否将添加到 LAS 数据集。

  • NO_RECURSION未选中 - 仅位于输入文件夹中的激光雷达文件会添加到 LAS 数据集。这是默认设置。
  • RECURSION位于输入文件夹子目录中的所有 LAS 文件都将被添加到 LAS 数据集。
Boolean
in_surface_constraints
[[in_feature_class, height_field, SF_type],...]
(可选)

LAS 数据集将引用的要素类。每个要素都需要定义以下属性:

in_feature_class - LAS 数据集引用的要素类。

height_field - 用于为要素指定高程值的源的字段。可以使用要素属性表中的任何数值字段。如果要素支持 Z 值,可通过选择 Shape.Z 选项读取要素几何。如果没有所需高度,则指定关键字 <无> 来创建 Z-less 要素,其高程由表面内插得到。

SF_type - 定义如何将要素几何加入到表面的三角网中的表面要素类型。具有硬或软标识的选项表示要素边是否表示坡度的明显中断或平缓变化。

  • 锚点 - 决不会被细化掉的高程点。此选项只适用于单点要素几何。
  • 硬断线软断线 - 强制高度值的隔断线。
  • 硬裁剪软裁剪 - 定义 LAS 数据集边界的面数据集。
  • 硬擦除软擦除 - 定义 LAS 数据集中的孔的面数据集。
  • 硬替换软替换 - 定义高度恒定的区域的面数据集。
Value Table
spatial_reference
(可选)

LAS 数据集的空间参考。如果没有明确指定空间参考,则 LAS 数据集将使用第一个输入 LAS 文件的坐标系。如果输入文件不包含任何空间参考信息,并且没有设置输入坐标系,则 LAS 数据集的坐标系将列为未知。

Coordinate System
compute_stats
(可选)

指定是否计算 LAS 文件的统计数据以及是否为 LAS 数据集生成空间索引。统计数据的存在允许 LAS 数据集图层使用过滤和符号系统选项,以便仅显示 LAS 文件中存在的 LAS 属性值。将为每个 LAS 文件创建 .lasx 辅助文件。

  • COMPUTE_STATS计算统计数据。
  • NO_COMPUTE_STATS不计算统计数据。这是默认设置。
Boolean
relative_paths
(可选)

指定 LAS 数据集是通过相对路径还是绝对路径来引用激光雷达文件和表面约束要素。在文件系统中使用同一相对路径将 LAS 数据集及其关联的数据重新定位到其他位置时,使用相对路径会比较方便。

  • ABSOLUTE_PATHSLAS 数据集引用数据时使用绝对路径。这是默认设置。
  • RELATIVE_PATHSLAS 数据集引用数据时使用相对路径。
Boolean

代码实例

创建 LAS 数据集 (CreateLasDataset) 示例 1(Python 窗口)

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

import arcpy
from arcpy import env

env.workspace = "C:/data"
arcpy.CreateLasDataset_management("folder_a; folder_b/5S4E.las", 
                                "test.lasd", "RECURSION",
                                "LA/boundary.shp <None> Softclip;"\
                                "LA/ridges.shp Elevation hardline", "", 
                                "COMPUTE_STATS", "RELATIVE_PATHS")
创建 LAS 数据集 (CreateLasDataset) 示例 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: 需要 3D Analyst 或者Spatial Analyst
ArcGIS for Desktop Standard: 是
ArcGIS for Desktop Advanced: 是
5/10/2014