切片 LAS (3D Analyst)

摘要

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

使用情况

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

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

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

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

  • 您可以使用 zLAS 压缩写入输出文件以减少存储大小。 zLAS 压缩通常会将文件大小减少到未压缩 LAS 文件的三分之一,并且 zLAS 文件支持对点分类代码和标记的编辑。

  • 您可以通过执行以下操作之一来定义 LAS 切片:

    • 指定每个切片的宽度和高度。
    • 指定每个输出 LAS 文件的目标文件大小。 此文件大小用于根据平均点间距以及存储每个点及其关联属性所需的字节数来估计切片宽度和高度。 派生宽度和高度基于 LAS 点规则分布在整个数据范围内的假设。 当输出是 zLAS 文件时,此文件大小将是其未压缩的大小。
    • 指定定义切片方案的面要素。 每个面均应为宽度和高度统一的矩形。 如果面不是矩形,则将使用其最小边界包络矩形来建立切片方案。 创建渔网生成细分曲面工具可用于创建与 LAS 数据范围匹配的切片面。 可使用面属性表中的文本字段来指定自定义 LAS 切片基本名称。
  • 可通过在环境设置中指定输出坐标系值或使用空间参考与原始 LAS 文件不同的输入要素来重新投影输出 LAS 切片。 z 基准面变换可以通过“变换”窗口指定所需的变换来完成。 Z 基准面变换需要安装垂直基准面变换格网。

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

参数

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

将要处理的 LAS 数据集。

LAS Dataset Layer
目标文件夹

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

Folder
输出基本名称
(可选)

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

String
输出 LAS 数据集
(可选)

引用由此工具创建的切片 LAS 文件的新 LAS 数据集。 设置此参数属于可选操作。

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

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

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

指定每个输出文件的 LAS 文件版本。

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

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

Long
压缩
(可选)

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

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

指定将对输出 LAS 文件进行的修改。

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

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

Feature Layer
命名方法
(可选)

指定将用于为输出文件提供唯一名称的命名约定。 该名称将追加到输出基本名称参数中指定的文本。 当输入要素用于定义切片方案时,其文本字段也可用于为输出文件提供唯一名称。

  • XY 坐标每个切片名称都将附加其左下角的 x 和 y 坐标,格式为“<基本名称>_<x 坐标>_<y 坐标>”。 这是默认设置。
  • 行和列根据所属的整体切片方案中的行与列来分配切片名称。 行将从下至上逐渐增加,而列将从左至右逐渐增加。 名称的格式为“<基本名称>_<行号>_<列号>”。
  • 序数标识切片名称将根据其创建顺序进行分配,从左下角开始到右上角递增。 名称的格式为“<基本名称>_<订单号>”。 订单号中前导零的数量将基于创建的文件的最大数量。
String
目标文件大小 (MB)
(可选)

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

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

Double
切片宽度
(可选)

每个切片的宽度。 当指定从要素类导入参数时,此参数将被禁用。 如果同时提供了切片宽度和高度,则目标文件大小 (MB) 参数将更新以反映使用这些尺寸生成的输出的大小。 同样,如果修改目标文件大小 (MB) 参数,切片宽度和高度也会更新以反映此更改。

Linear Unit
分块高度
(可选)

每个切片的高度。 当指定从要素类导入参数时,此参数将被禁用。 如果同时提供了切片宽度和高度,则目标文件大小 (MB) 参数将更新以反映使用这些尺寸生成的输出的大小。 同样,如果修改目标文件大小 (MB) 参数,切片宽度和高度也会更新以反映此更改。

Linear Unit
切片原点
(可选)

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

Point

派生输出

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

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

Folder

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

输出 LAS 文件的点记录格式。 可用选项取决于 las_version 参数中指定的 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
(可选)

指定将为每个输出 LAS 文件提供唯一名称的方法。 每个文件名将追加到 base_name 参数中指定的文本。 使用输入要素来定义切片方案时,还将包含其文本或数值字段名称用作定义文件名的源。

  • XY_COORDS每个切片名称都将附加其左下角的 x 和 y 坐标,格式为“<基本名称>_<x 坐标>_<y 坐标>”。 这是默认设置。
  • ROW_COLUMN根据所属的整体切片方案中的行与列来分配切片名称。 行将从下至上逐渐增加,而列将从左至右逐渐增加。 名称的格式为“<基本名称>_<行号>_<列号>”。
  • ORDINAL切片名称将根据其创建顺序进行分配,从左下角开始到右上角递增。 名称的格式为“<基本名称>_<订单号>”。 订单号中前导零的数量将基于创建的文件的最大数量。
String
file_size
(可选)

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

此参数的值会在 tile_heighttile_height 参数修改时发生变化。 指定 tile_feature 参数后,则会忽略此参数。

Double
tile_width
(可选)

每个切片的宽度。 当指定 tile_feature 参数时,该参数被禁用。 如果同时提供了切片宽度和高度,则 file_size 参数将更新以反映使用这些尺寸生成的输出的大小。 同样,如果修改 file_size 参数,切片宽度和高度也会更新以反映此更改。

Linear Unit
tile_height
(可选)

每个切片的高度。 当指定 tile_feature 参数时,该参数被禁用。 如果同时提供了切片宽度和高度,则 file_size 参数将更新以反映使用这些尺寸生成的输出的大小。 同样,如果修改 file_size 参数,切片宽度和高度也会更新以反映此更改。

Linear Unit
tile_origin
(可选)

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

Point

派生输出

名称说明数据类型
out_folder

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

Folder

代码示例

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())

相关主题