摘要
创建符合常规切片方案的切片 LAS 文件。
用法
考虑使用此工具将大型 LAS 文件细分优化为适合进行数据分析、分发以及存档的大小。默认切片方案可生成方形切片,其宽度和高度由大小限制为 250 MB 的目标文件进行定义。位于单个切片区域范围内的多个 LAS 文件中的点将合并为输出切片。
重新排列 LAS 点将对激光雷达数据进行空间聚类,并提高执行显示和分析操作时的性能。该过程需要创建临时文件。考虑在环境设置中将固态硬盘中的文件夹指定为临时工作空间,以提高该操作的速度。
如果激光雷达数据已经分类且已准备好存档或分发,可考虑指定 ZLAS 压缩。ZLAS 文件不可编辑,且无法重新分类。
可使用以下其中一种方法来定义 LAS 切片:
- 指定未压缩的 LAS 文件的目标文件大小。此大小为在整个范围内等值分布时的 LAS 切片估算大小。
- 指定切片宽度和高度。
- 指定输入要素以定义切片方案。每个面均应为宽度和高度统一的矩形。仅会为 LAS 数据集中被输入要素覆盖的部分创建 LAS 切片。
可通过在环境设置中指定输出坐标系或使用空间参考与原始 LAS 文件不同的输入要素来重新投影输出 LAS 切片。
可使用输入要素并在命名方法参数中选择文本字段来分配自定义 LAS 切片名称。
语法
TileLas_3d (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 属性值。
| Boolean |
las_version (可选) | 每个输出文件的 LAS 文件版本。默认值为 1.4。
| String |
point_format (可选) | 输出 LAS 文件的点记录格式。可用选项取决于 point_format 参数中指定的 LAS 文件版本。 | Long |
compression (可选) | 指定输出 LAS 文件是否为压缩格式或标准 LAS 格式。
| String |
las_options [las_options,...] (可选) | 输出 LAS 文件的可选修改列表。
| String |
tile_feature (可选) | 定义在切片激光雷达数据时使用的切片宽度和高度的面要素。假定面为矩形,并使用首个要素范围来定义切片宽度和高度。 | Feature Layer |
naming_method (可选) | 定义每个输出切片的命名方式。在 tile_feature 参数中指定输入要素时,您可以使用该参数的其中一个字段(文本或数值)来定义输出文件名称。该名称会追加至 base_name 参数中使用的文本的末尾。支持以下自动生成的命名约定:
| String |
file_size (可选) | 该值以兆字节表示,代表在整个范围内等值分布的输出 LAS 切片的未压缩文件大小的上限。该工具默认值为 250,而该值用于估算切片宽度和高度。当为 tile_feature 或 tile_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 |
代码示例
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())
环境
许可信息
- ArcGIS Desktop Basic: 需要 3D Analyst
- ArcGIS Desktop Standard: 需要 3D Analyst
- ArcGIS Desktop Advanced: 需要 3D Analyst