ArcGIS Desktop

  • 文档
  • 支持

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS for Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

提取 LAS

  • 摘要
  • 插图
  • 用法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

摘要

提取与裁剪要素或范围相重叠的 LAS 文件。

插图

用法

  • 将 LAS 数据集指定为输入时,将处理它引用的 LAS 文件中的所有数据点。也可以按分类代码、分类标记和回波值来选择激光雷达数据的子集,方法是在 LAS 数据集图层中应用所需的 LAS 点过滤器。可通过图层属性对话框或创建 LAS 数据集图层工具定义过滤器。

  • 考虑使用此工具来提取在源激光雷达文件中捕获的激光雷达数据的子集。例如,如果仅需要在用面边界定义的区域中作业,则可将面用作边界要素来提取 LAS 文件。

  • 要重新投影 LAS 文件,请在输出坐标系环境设置中指定所需的空间参考。

  • 如果沿提取边界定义提取范围,将使用两者的交集来定义提取的 LAS 文件的 coverage。

  • 如果选中重新排列点参数(Python 中的 rearrange_points='REARRANGE_POINTS'),将点记录排序到已为阅读文件优化的空间聚类。此优化显著增强整个 ArcGIS 平台的显示效果。重新排列点将添加某些要完成的处理时间。由于重新排列点的顺序以改善数据访问可根本改善数据,因此默认情况下选中该参数。

语法

ExtractLas_3d (in_las_dataset, target_folder, {extent}, {boundary}, {process_entire_files}, {name_suffix}, {remove_vlr}, {rearrange_points}, {compute_stats}, {out_las_dataset})
参数说明数据类型
in_las_dataset

待处理的 LAS 数据集。

LAS Dataset Layer
target_folder

将在其中写入 LAS 文件的文件夹。每个输出文件与输入文件的 LAS 文件版本和点记录格式都相同。

Folder
extent
(可选)

指定将由此工具进行评估的数据的范围。

Extent
boundary
(可选)

定义将提取 LAS 文件的位置的面边界。

Feature Layer
process_entire_files
(可选)

指定处理范围的应用方式。

  • PROCESS_EXTENT —仅处理与感兴趣区相交的 LAS 点。这是默认设置。
  • PROCESS_ENTIRE_FILES —如果 LAS 文件的任何部分与感兴趣区相交,则该 LAS 文件中的所有点(包括感兴趣区以外的点)都会得到处理。
Boolean
name_suffix
(可选)

将追加到每个输出 LAS 文件名的文本。每个文件都将从其源文件继承其基本名称,后跟此参数中指定的后缀。

String
remove_vlr
(可选)

确定是移除附加变量长度记录,还是将其保留在 LAS 文件中。

  • MAINTAIN_VLR —任何存储于处理的 LAS 文件的可变长度记录中的数据将保留在提取的 LAS 文件中。这是默认设置。
  • REMOVE_VLR —将从 LAS 文件中删除附加变量长度记录。
Boolean
rearrange_points
(可选)

确定是否重新排列 LAS 文件中的点。

  • REARRANGE_POINTS —LAS 文件中点的顺序将保持不变。
  • MAINTAIN_POINTS —将重新排列 LAS 文件中的点。这是默认设置。
Boolean
compute_stats
(可选)

指定是否应计算 LAS 数据集引用的 LAS 文件的统计数据。统计数据的存在允许 LAS 数据集图层使用过滤和符号系统选项,以便仅显示 LAS 文件中存在的 LAS 属性值。

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

输出的 LAS 数据集。

LAS Dataset

代码示例

ExtractLas 示例 1(Python 窗口)

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

import arcpy
from arcpy import env

env.workspace = 'C:/data'
arcpy.ddd.ExtractLas('test.lasd', 'c:/lidar/subset', boundary='study_area.shp',
                     name_suffix='subset', remove_vlr=True, 
                     rearrange_points='REARRANGE_POINTS', 
                     out_las_dataset='extracted_lidar.lasd')
ExtractLas 示例 2(独立脚本)

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

'''****************************************************************************
Name: Split Large LAS File
Description: Divides a large LAS file whose point distribution covers the full
             XY extent of the data into smaller files to optimize performance
             when reading lidar data.
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math

in_las_file = arcpy.GetParameterAsText(0)
tile_width = arcpy.GetParameter(1) # double in LAS file's XY linear unit
tile_height = arcpy.GetParameter(2) # double in LAS file's XY linear unit
out_folder = arcpy.GetParameterAsText(3) # folder for LAS files
out_name_suffix = arcpy.GetParameterAsText(4) # basename for output files
out_lasd = arcpy.GetParameterAsText(5) # output LAS dataset


try:
    temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir())
    arcpy.management.CreateLasDataset(in_las_file, temp_lasd, 
                                      compute_stats='COMPUTE_STATS')
    desc = arcpy.Describe(temp_lasd)
    total_columns = int(math.ceil(desc.extent.width/tile_width))
    total_rows = int(math.ceil(desc.extent.height/tile_height))
    digits = int(math.log10(max(cols, rows))) + 1
    for row in range(1, total_rows+1):
        yMin = desc.extent.YMin + tile_height*(row-1)
        yMax = desc.extent.YMin + tile_height*(row)
        for col in range (1, total_columns+1):
            xMin = desc.extent.XMin + tile_width*(col-1)
            xMax = desc.extent.XMax + tile_width*(col)
            name_suffix = '_{0}_{1}x{2}'.format(out_name_suffix, 
                                                str(row).zfill(digits), 
                                                str(col).zfill(digits))
            arcpy.ddd.ExtractLas(temp_lasd, out_folder, 
                                 arcpy.Extent(xMin, yMin, xMax, yMax),
                                 name_suffix=name_suffix, 
                                 rearrange_points='REARRANGE_POINTS',
                                 compute_stats='COMPUTE_STATS')
    arcpy.env.workspace = out_folder
    arcpy.management.CreateLasDataset(arcpy.ListFiles('*{0}*.las'.format(out_name_suffix)),
                                      out_lasd, compute_stats='COMPUTE_STATS',
                                      relative_paths='RELATIVE_PATHS')
except arcpy.ExecuteError:
    print(arcpy.GetMessages())

环境

  • 当前工作空间
  • 范围
  • 输出坐标系

许可信息

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

相关主题

  • 数据管理工具集概述
  • 有关表面的基础知识
  • 表面格式

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS 平台

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • 内部人员博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2018 Esri. | 隐私政策 | 法律声明