切片 LAS (3D Analyst)

摘要

创建一组不重叠的 LAS 文件,按规则格网划分其水平范围。

使用情况

  • 无论可能应用的任何图层过滤器的设置如何,切片操作都将保留位于经切片的 LAS 数据集的处理范围内的所有点。如果需要过滤,请考虑在对 LAS 数据集进行切片之前或之后使用提取 LAS 工具。

  • 对大小超过 500 MB 的大型 LAS 文件进行细分将提高相应操作的性能,这些操作依赖于读取空间聚类中的数据,例如,需要创建表面的分析操作或者数据可视化操作。默认切片方案可生成方形切片,其宽度和高度由大小限制为 250 MB 的目标文件进行定义。位于单个切片区域范围内的多个 LAS 文件中的点将合并为输出切片。

  • 由具有重叠范围的 LAS 文件组成的 LAS 数据集可能会由于依赖逐个文件分析的操作而产生不准确的结果。例如,点间距估算是通过分析每个文件的点在该文件内的覆盖区域而得出,因此没有用于在重叠区域中调整点的影响的机制。同样,稀疏化 LAS 工具也依赖于逐个文件的处理,并且结果不符合存在文件重叠区域中的预期输出。

  • 重新排列 LAS 点将对激光雷达数据进行空间聚类,并提高可视化和执行分析操作时的性能。该过程需要创建临时文件。考虑在环境设置中将固态硬盘中的文件夹指定为临时工作空间,以提高该操作的速度。

  • 如果 LAS 数据已经分类且已准备好存档或分发,可考虑指定 ZLAS 压缩。ZLAS 文件不可编辑且无法重新分类,但其通常可将文件大小减少到未压缩 LAS 文件的大约三分之一。

  • 可使用以下其中一种方法来定义 LAS 切片:

    • 指定未压缩的 LAS 文件的目标文件大小。此大小为在整个范围内等值分布时的 LAS 切片估算大小。
    • 指定切片宽度和高度。
    • 指定输入要素以定义切片方案。每个面均应为宽度和高度统一的矩形。创建渔网生成细分面工具可用于创建覆盖 LAS 数据范围的切片面。可使用输入要素并在命名方法参数中选择文本字段来分配自定义 LAS 切片名称。
  • 可通过在环境设置中指定输出坐标系或使用空间参考与原始 LAS 文件不同的输入要素来重新投影输出 LAS 切片。只有安装了垂直基准面变换格网后,才能完成 z 基准面变换。

  • 此工具通过指定比输入 LAS 数据集范围更大的切片大小,将分布在多个文件中的 LAS 点合并到一个 LAS 文件中。

参数

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

待处理的 LAS 数据集。

LAS Dataset Layer
目标文件夹

将在其中写入切片 LAS 文件的文件夹。

Folder
输出基本名称
(可选)

每个输出文件均以该名称开头。

String
输出 LAS 数据集
(可选)

引用由此工具创建的切片 LAS 文件的新 LAS 数据集。此操作是可选的。

LAS Dataset
计算统计数据
(可选)

指定是否将计算 LAS 数据集引用的 .las 文件的统计数据。 计算统计数据时会为每个 .las 文件提供一个空间索引,从而提高了分析和显示性能。 统计数据还可通过将 LAS 属性(例如分类代码和返回信息)显示限制为 .las 文件中存在的值来提升过滤和符号系统体验。

  • 选中 - 将计算统计数据。 这是默认设置。
  • 未选中 - 不计算统计数据。
Boolean
输出版本
(可选)

指定每个输出文件的 LAS 文件版本。默认值为 1.4。

  • 1.0此版本支持 256 种唯一类代码,但是没有预定义的分类方案。
  • 1.1该版本引入了预定义的分类方案和点记录格式 0 和 1,以及从激光雷达传感器以外的源获取的点的合成分类标记。
  • 1.2此版本的特点是支持 GPS 时间以及点记录 2 和 3 中的 RGB 记录。
  • 1.3该版本新增了对波形数据的点记录 4 和 5 的支持。但是,不会在 ArcGIS 中读取波形信息。
  • 1.4此版本引入了点记录格式 6 到 10,以及新的类定义、256 种唯一类代码和重叠分类标记。
String
点格式
(可选)

输出 LAS 文件的点记录格式。可用选项取决于输出版本参数中指定的 LAS 文件版本。

Long
压缩
(可选)

指定输出 LAS 文件将为压缩格式还是标准 LAS 格式。

  • 不压缩输出将为标准 LAS 格式(*.las 文件)。这是默认设置。
  • zLAS 压缩输出 LAS 文件将压缩为 zLAS 格式。
String
LAS 选项
(可选)

输出 LAS 文件的可选修改列表。

  • 重新排列点LAS 点将根据其空间聚类进行排列。
  • 移除可变长度记录添加在标题后的可变长度记录以及每个文件的点记录将被移除。
  • 移除多余字节输入 LAS 文件中每个点记录存在的额外字节将被移除。
String
从要素类导入
(可选)

定义在切片激光雷达数据时使用的切片宽度和高度的面要素。假定面为矩形,并使用首个要素范围来定义切片宽度和高度。

Feature Layer
命名方法
(可选)

指定为每个输出 LAS 文件提供唯一名称的方法。每个文件名将追加到输出基本名称参数中指定的文本。使用输入要素来定义切片方案时,还将包含其文本或数值字段名称用作定义文件名的源。支持以下自动生成的命名约定:

  • XY 坐标在每个切片的中间点处追加 X 和 Y 坐标。这是默认设置。
  • 行和列根据所属的整体切片方案中的行与列来分配切片名称。行将从上至下逐渐增加,而列将从左至右逐渐增加。
  • 序数标识根据创建顺序分配切片名称,其中 1 为第一切片,2 为第二切片,以此类推。
String
目标文件大小(MB)
(可选)

该值以兆字节表示,代表在整个范围内等值分布的输出 LAS 切片的未压缩文件大小的上限。默认值为 250,该值用于估算切片宽度和高度。

此参数的值会在切片宽度切片高度参数修改时发生变化。当在从要素类导入参数中指定了输入要素时,将会禁用该参数。

Double
切片宽度
(可选)

每个切片的宽度。如果切片高度同时存在,指定一个值时会更新目标文件大小和点计数。同样,如果单独更新了目标文件大小或点计数,切片宽度和高度也将发生变化,以反映相应切片的大小。当已在从要素类导入参数中指定了输入要素时,切片宽度将通过第一要素的高度获取,而此参数将被禁用。

Linear Unit
切片高度
(可选)

每个切片的高度。如果切片宽度同时存在,指定一个值时会更新目标文件大小。同样,如果单独更新了目标文件,切片宽度和高度也将按照比例发生变化,以反映相应切片的大小。当已在从要素类导入参数中指定了输入要素时,切片高度将通过第一要素的高度获取,而此参数将被禁用。

Linear Unit
切片原点
(可选)

切片网格原点的坐标。可在输入 LAS 数据集的左下角获取默认值。当已在从要素类导入参数中指定了输入要素时,将从第一要素的左下角继承原点,而此参数将被禁用。

Point

派生输出

标注说明数据类型
输出文件夹

将在其中写入输出 LAS 文件的文件夹。

文件夹

arcpy.ddd.TileLas(in_las_dataset, target_folder, {base_name}, {out_las_dataset}, {compute_stats}, {las_version}, {point_format}, {compression}, {las_options}, {tile_feature}, {naming_method}, {file_size}, {tile_width}, {tile_height}, {tile_origin})
名称说明数据类型
in_las_dataset

待处理的 LAS 数据集。

LAS Dataset Layer
target_folder

将在其中写入切片 LAS 文件的文件夹。

Folder
base_name
(可选)

每个输出文件均以该名称开头。

String
out_las_dataset
(可选)

引用由此工具创建的切片 LAS 文件的新 LAS 数据集。此操作是可选的。

LAS Dataset
compute_stats
(可选)

指定是否将计算 LAS 数据集引用的 .las 文件的统计数据。 计算统计数据时会为每个 .las 文件提供一个空间索引,从而提高了分析和显示性能。 统计数据还可通过将 LAS 属性(例如分类代码和返回信息)显示限制为 .las 文件中存在的值来提升过滤和符号系统体验。

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

指定每个输出文件的 LAS 文件版本。默认值为 1.4。

  • 1.0此版本支持 256 种唯一类代码,但是没有预定义的分类方案。
  • 1.1该版本引入了预定义的分类方案和点记录格式 0 和 1,以及从激光雷达传感器以外的源获取的点的合成分类标记。
  • 1.2此版本的特点是支持 GPS 时间以及点记录 2 和 3 中的 RGB 记录。
  • 1.3该版本新增了对波形数据的点记录 4 和 5 的支持。但是,不会在 ArcGIS 中读取波形信息。
  • 1.4此版本引入了点记录格式 6 到 10,以及新的类定义、256 种唯一类代码和重叠分类标记。
String
point_format
(可选)

输出 LAS 文件的点记录格式。可用选项取决于 point_format 参数中指定的 LAS 文件版本。

Long
compression
(可选)

指定输出 LAS 文件将为压缩格式还是标准 LAS 格式。

  • NO_COMPRESSION输出将为标准 LAS 格式(*.las 文件)。这是默认设置。
  • ZLAS输出 LAS 文件将压缩为 zLAS 格式。
String
las_options
[las_options,...]
(可选)

输出 LAS 文件的可选修改列表。

  • REARRANGE_POINTSLAS 点将根据其空间聚类进行排列。
  • REMOVE_VLR添加在标题后的可变长度记录以及每个文件的点记录将被移除。
  • REMOVE_EXTRA_BYTES输入 LAS 文件中每个点记录存在的额外字节将被移除。
String
tile_feature
(可选)

定义在切片激光雷达数据时使用的切片宽度和高度的面要素。假定面为矩形,并使用首个要素范围来定义切片宽度和高度。

Feature Layer
naming_method
(可选)

指定每个输出切片的命名方式。在 tile_feature 参数中指定输入要素时,还将指定其文本或数值字段的名称用作定义输出 LAS 文件名的源。该名称将追加到 base_name 参数中定义的文本的末尾。支持以下自动生成的命名约定:

  • XY_COORDS在每个切片的中间点处追加 X 和 Y 坐标。这是默认设置。
  • ROW_COLUMN根据所属的整体切片方案中的行与列来分配切片名称。行将从上至下逐渐增加,而列将从左至右逐渐增加。
  • ORDINAL根据创建顺序分配切片名称,其中 1 为第一切片,2 为第二切片,以此类推。
String
file_size
(可选)

该值以兆字节表示,代表在整个范围内等值分布的输出 LAS 切片的未压缩文件大小的上限。默认值为 250,该值用于估算切片宽度和高度。当为 tile_featuretile_width 以及 tile_height 参数提供了值时,将忽略该参数。

Double
tile_width
(可选)

每个切片的宽度。如果已为切片宽度和高度指定了值,则将忽略 file_size 参数。当已在 tile_feature 参数中指定了输入要素时,切片宽度将通过第一要素的高度获取,而此参数将被禁用。

Linear Unit
tile_height
(可选)

每个切片的高度。如果已为切片宽度和高度指定了值,则将忽略 file_size 参数。当已在 tile_feature 参数中指定了输入要素时,切片高度将通过第一要素的高度获取,而此参数将被禁用。

Linear Unit
tile_origin
(可选)

切片网格原点的坐标。可在输入 LAS 数据集的左下角获取默认值。当已在 tile_feature 参数中指定了输入要素时,将从第一要素的左下角继承原点,而此参数将被禁用。

Point

派生输出

名称说明数据类型
out_folder

将在其中写入输出 LAS 文件的文件夹。

文件夹

代码示例

TileLas 示例 1(Python 窗口)

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

arcpy.env.workspace = 'C:/data'

arcpy.ddd.TileLas('Denver_2', basename='2014_', out_las_dataset='Denver_2014.lasd', 
                  las_version='1.4', point_format=6, compression='ZLAS Compression', 
                  las_options=['Rearrange points'], naming_method='ROW_COLUMN', file_size=300)
TileLas 示例 2(独立脚本)

下面的示例演示了如何在独立 Python 脚本中使用此工具。

'''****************************************************************************
       Name: Tile LAS File
Description: Creates tiled LAS files form an untiled collection.
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math

in_las = arcpy.GetParameterAsText(1) # The LAS files that need to be tiled
out_folder = arcpy.GetParameterAsText(2) # folder for LAS files
basename = arcpy.GetParameterAsText(3) # basename for output files
out_lasd = arcpy.GetParameterAsText(4) # output LAS dataset


try:
    # Create temp LAS dataset to reference LAS files that will be tiled
    temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir())
    arcpy.management.CreateLasDataset(in_las, temp_lasd)
    arcpy.ddd.TileLas(temp_lasd, out_folder, basename, out_lasd, las_version=1.4, 
                      point_format=7, file_size=300)
    arcpy.management.Delete(temp_lasd)
    arcpy.ddd.ClassifyLasGround(out_lasd, method='AGGRESSIVE')
    arcpy.ddd.ClassifyLasBuilding(out_lasd, min_height='3 Meters', min_area='4 Meters')
    arcpy.ddd.ClassifyLasByHeight(out_lasd, height_classification=[(3, 6), (4,20), (5,70)],
                                  noise='All Noise', compute_stats='COMPUTE_STATS')

except arcpy.ExecuteError:
    print(arcpy.GetMessages())

许可信息

  • Basic: 需要 3D Analyst
  • Standard: 需要 3D Analyst
  • Advanced: 需要 3D Analyst

相关主题