创建 LAS 数据集 (数据管理)

摘要

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

插图

创建 LAS 数据集工具图示

使用情况

  • LAS 数据集设计用于使用文件版本 1.0-1.4 以 LAS 格式存储的点云数据。 还支持以压缩 ZLAS 格式存储的 LAS 文件。 可以通过任何创建新 LAS 文件的工具生成 ZLAS 文件,例如转换 LAS提取 LAS稀疏化 LAS切片 LAS。 此外,EzLAS Optimizer 独立应用程序还可用于将 .las 文件压缩为 .zlas 文件或者将其解压缩回 .las 文件。

  • 对各个 .las 文件进行检查,以确定其内部结构是否与 LAS 规范相一致。 如果 .las 文件没能加载到 LAS 数据集中,表示可能出现了文件损坏或文件标题包含错误信息的情况。 可以使用 Esri 的 CheckLAS 实用程序来确定数据中是否存在一些常见的问题。

  • 表面约束要素可用于强化 LAS 数据集中要素衍生的表示表面特征的高程值。

  • 每个 .las 文件通常在其标题(由 LAS 数据集读取)中包含空间参考信息。 如果此信息丢失或未正确定义,则 .las 文件将不会放置在正确的位置。 如果已知正确的空间参考,则可以使用为 LAS 创建 PRJ 参数创建能够对激光雷达进行正确地理配准的 .prj 文件。 .prj 文件与 .las 文件的名称相同,位于同一文件夹,且包含 .las 文件坐标系的熟知文本表示(类似于与 shapefile 相关联的 .prj 文件)。

  • ArcGIS 使用美国摄影测量及遥感协会 (ASPRS) 定义的 LAS 分类方案。 了解有关激光雷达点分类的详细信息

  • 地理处理窗格中,还可以指定文件夹作为输入,具体方法如下:在 File Explorer 中选择文件夹,然后将其拖动到参数的输入框上。

参数

标注说明数据类型
输入文件

.las 文件、.zlas 文件、LAS 数据集以及包含输出 LAS 数据集将引用的 .las 文件的文件夹。 当指定 LAS 数据集作为输入时,会将具有有效路径引用的所有 .las.zlas 文件添加到输入 LAS 数据集。

地理处理窗格中,还可以指定文件夹作为输入,具体方法如下:在 File Explorer 中选择文件夹,然后将其拖动到参数的输入框上。

LAS Dataset Layer; File; Folder
输出 LAS 数据集

将创建的 LAS 数据集。

LAS Dataset
包括子文件夹
(可选)

指定 LAS 数据集是否引用位于输入文件夹子目录中的 .las 文件。

  • 未选中 - 仅位于输入文件夹中的 .las 文件会添加到 LAS 数据集。 这是默认设置。
  • 选中 - 位于输入文件夹子目录中的所有 .las 文件都将被添加到 LAS 数据集。
Boolean
表面约束
(可选)

将构成由 LAS 数据集生成的三角化网格面定义的要素。

  • 输入要素 - 其几何将整合到 LAS 数据集的三角化网格面的要素。
  • 高度字段 - 通过选择 Shape.Z,可以从要素属性表或几何中的任何数值字段获取要素的高程源。 如果无需高度,则指定关键字 <None> 来创建 z-less 要素,其高程由表面内插得到。
  • 类型 - 定义由 LAS 数据集生成的三角化网格面中的要素角色。 具有硬或软标识的选项表示要素边是否表示坡度的明显中断或平缓变化。
  • 表面要素类型 - 定义如何将要素几何加入到表面的三角网中的表面要素类型。 具有硬或软标识的选项表示要素边是否表示坡度的明显中断或平缓变化。
    • 锚点 - 不会被细化掉的高程点。 此选项仅可用于单点要素几何。
    • 硬断线软断线 - 强制高度值的隔断线。
    • 硬裁剪软裁剪 - 定义 LAS 数据集边界的面数据集。
    • 硬擦除软擦除 - 定义 LAS 数据集中的孔的面数据集。
    • 硬替换软替换 - 定义高度恒定的区域的面数据集。
Value Table
坐标系
(可选)

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

Coordinate System
计算统计数据
(可选)

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

  • 未选中 - 不计算统计数据。 这是默认设置。
  • 选中 - 将计算统计数据。
Boolean
存储相对路径
(可选)

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

  • 未选中 - LAS 数据集引用数据时使用绝对路径。 这是默认设置。
  • 选中 - LAS 数据集引用数据时使用相对路径。
Boolean
为 LAS 文件创建 PRJ

指定是否会为 LAS 数据集引用的 .las 文件创建 .prj 文件。

  • 无 LAS 文件不会创建 .prj 文件。 这是默认设置。
  • 缺失空间参考的文件将为没有空间参考的 .las 文件创建对应的 .prj 文件。
  • 所有 LAS 文件将为所有 .las 文件创建对应的 .prj 文件。
String
处理范围
(可选)

处理范围将用于从输入文件参数值中的文件和文件夹列表中选择 .las 文件的子集。 完全位于此范围之外的任何 .las 文件都将从生成的 LAS 数据集中排除。 此外,如果选中了仅添加完全包含的文件参数,则部分位于范围之外的 .las 文件将被排除。

Extent
处理边界
(可选)

这一面要素的边界将用于从输入文件参数中的文件和文件夹列表中选择 .las 文件的子集。 完全位于面之外的任何 .las 文件都将从生成的 LAS 数据集中排除。 此外,如果选中了仅添加完全包含的文件参数,则部分位于面之外的 .las 文件将被排除。

Feature Layer
仅添加完全包含的文件
(可选)

指定将添加到 LAS 数据集的 .las 文件是否必须完全或部分包含在处理范围、处理边界面或两者的交集中。

  • 未选中 - 与处理范围、处理边界或两者的交集相交所有文件都将添加到 LAS 数据集中。 这是默认设置。
  • 选中 - 仅完全包含在处理范围、处理边界或两者的交集中的文件才会添加到 LAS 数据集。
Boolean

arcpy.management.CreateLasDataset(input, out_las_dataset, {folder_recursion}, {in_surface_constraints}, {spatial_reference}, {compute_stats}, {relative_paths}, create_las_prj, {extent}, {boundary}, {add_only_contained_files})
名称说明数据类型
input
[input,...]

.las 文件、LAS 数据集以及包含 LAS 数据集将引用的 .las 文件的文件夹。 该信息可以以下形式提供:包含所有输入数据的字符串,或包含特定数据元素的字符串列表(例如,"lidar1.las; lidar2.las; folder1; folder2"["lidar1.las", "lidar2.las", "folder1", "folder2"])。

LAS Dataset Layer; File; Folder
out_las_dataset

将创建的 LAS 数据集。

LAS Dataset
folder_recursion
(可选)

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

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

生成三角化网格面时,LAS 数据集将引用的要素。 每个要素都必须定义以下属性:

  • in_feature_class - LAS 数据集将引用的要素。
  • height_field - 要素属性表中可用于定义高度源的任何数值字段。 如果要素几何包含 Z 值,则可以通过指定 Shape.Z 进行选择。 如果无需高度,则指定关键字 <None> 来创建 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
create_las_prj

指定是否会为 LAS 数据集引用的 .las 文件创建 .prj 文件。

  • NO_FILES不会创建 .prj 文件。 这是默认设置。
  • FILES_MISSING_PROJECTION将为没有空间参考的 .las 文件创建对应的 .prj 文件。
  • ALL_FILES将为所有 .las 文件创建对应的 .prj 文件。
String
extent
(可选)

处理范围将用于从 input 参数值中的文件和文件夹列表中选择 .las 文件的子集。 完全位于此范围之外的任何 .las 文件都将从生成的 LAS 数据集中排除。 此外,如果 add_only_contained_files 参数已设置为 INTERSECTED_FILES,则部分位于范围之外的 .las 文件将被排除。

Extent
boundary
(可选)

这一面要素的边界将用于从 input 参数中的文件和文件夹列表中选择 .las 文件的子集。 完全位于面要素之外的任何 .las 文件都将从生成的 LAS 数据集中排除。 此外,如果 add_only_contained_files 参数已设置为 INTERSECTED_FILES,则部分位于面之外的 .las 文件将被排除。

Feature Layer
add_only_contained_files
(可选)

指定将添加到 LAS 数据集的 .las 文件是否必须完全或部分包含在处理范围、处理边界面或两者的交集中。

  • CONTAINED_FILES与处理范围、处理边界或两者的交集相交所有文件都将添加到 LAS 数据集中。 这是默认设置。
  • INTERSECTED_FILES仅完全包含在处理范围、处理边界或两者的交集中的文件才会添加到 LAS 数据集。
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

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)

相关主题