LAS 转多点 (3D Analyst)

描述

使用一个或多个激光雷达文件创建多点要素。

插图

LAS 转多点

使用方法

  • 此工具支持 1.0 到 1.4 版本的 ZLAS 和 LAS 文件。

  • LAS 格式支持根据美国摄影测量与遥感协会 (ASPRS) 制定的规范对每个点进行分类。ArcGIS 平台应用为 LAS 文件版本 1.4 指定的分类方案:

    类别值 分类类型

    0

    从不分类

    1

    未分配

    2

    地面

    3

    低植被

    4

    中等植被

    5

    高植被

    6

    建筑物

    7

    低噪音

    8

    模型关键点/保留

    9

    水域

    10

    铁路

    11

    路面

    12

    重叠/保留

    13

    钢丝护网

    14

    导线

    15

    输电塔

    16

    线 - 连接器

    17

    桥板

    18

    高噪音

    19 – 63

    为 ASPRS 定义保留(LAS 1.1 至 1.3 最高支持类代码 31)

    32 – 255

    可由用户定义(仅 LAS 1.0 和 1.4 的特定版本支持)

    注:

    尽管 LAS 1.4 新引入的大部分类代码分配先前已被指定为“保留”,但类代码 8 和 12 已从“模型关键和重叠”更改为“保留”。

  • LAS 格式支持存储为每个激光雷达点预定义的大量属性。如果您不知道哪些属性可用于给定的 LAS 文件集合,请考虑使用 LAS 数据集来查看 LAS 文件属性。

  • 将多个 LAS 属性加载到 Oracle 数据库时,必须确保参数 attribute_binary 的所有 DBTUNE 关键字均设置为使用二进制大对象 (BLOB),而不是 LONGRAW。这是因为 LAS 属性已作为 BLOB 加载,而 Oracle 不支持 LONGRAW 表中存在多个 BLOB。如需帮助,请联系 Oracle 数据库管理员。

语法

arcpy.3d.LASToMultipoint(input, out_feature_class, average_point_spacing, {class_code}, {return}, {attribute}, {input_coordinate_system}, {file_suffix}, {z_factor}, {folder_recursion})
参数说明数据类型
input
[input,...]

将要导入到多点要素类中的 LAS 或 ZLAS 文件。如果指定了文件夹,则将导入位于该文件夹中的所有 LAS 文件。

在“工具”对话框中,可将文件夹指定为输入,具体方法如下:在 Windows 资源管理器中选择所需文件夹,然后将其拖动到参数的输入框中。

Folder; File
out_feature_class

将由此工具生成的要素类。

Feature Class
average_point_spacing

一个或多个输入文件中点之间的平均 2D 距离。此距离可以是一个近似值。如果以不同的密度对区域进行采样,应指定较小的间距。所提供的值需要使用输出坐标系的投影单位。

Double
class_code
[class_code,...]
(可选)

用作 LAS 数据点的查询过滤器的分类代码。有效值介于 1 到 32 之间。默认情况下,不使用过滤器。

Long
return
[return,...]
(可选)

将用于过滤已导入到多点要素中的 LAS 点的回波值。

  • ANY_RETURNS任意回波
  • 11
  • 22
  • 33
  • 44
  • 55
  • 66
  • 77
  • 88
  • LAST_RETURNS最后回波
String
attribute
[[keyword, name],...]
(可选)

LAS 点属性,其值将存储在输出的属性表的二进制大对象 (BLOB) 字段中。如果所生成的要素将参与 terrain 数据集,则已存储的属性可用于对 terrain 进行符号化。名称列表示将用于存储指定属性的字段的名称。支持的 LAS 属性如下:

  • INTENSITY强度
  • RETURN_NUMBER回波编号
  • NUMBER_OF_RETURNS每个脉冲的回波数
  • SCAN_DIRECTION_FLAG扫描方向标记
  • EDGE_OF_FLIGHTLINE摄影航线的边缘
  • CLASSIFICATION分类
  • SCAN_ANGLE_RANK扫描角度等级
  • FILE_MARKER文件标记
  • USER_BIT_FIELD用户数据值
  • GPS_TIMEGPS 时间
  • COLOR_RED红色波段
  • COLOR_GREEN绿色波段
  • COLOR_BLUE蓝色波段
Value Table
input_coordinate_system
(可选)

输入 LAS 文件的坐标系。

Coordinate System
file_suffix
(可选)

从输入文件夹导入的文件的后缀。将文件夹指定为输入时,此参数为必填项。

String
z_factor
(可选)

Z 值将乘上的系数。此值通常用于转换 Z 线性单位来匹配 XY 线性单位。默认值为 1,此时高程值保持不变。如果输入表面的空间参考具有已指定线性单位的 Z 基准,则将禁用此参数。

Double
folder_recursion
(可选)

当所选输入文件夹中的子文件夹含有数据时,扫描子文件夹。为目录结构中包含的每个文件生成一行输出要素类。

  • NO_RECURSION只有在输入文件夹中找到的 LAS 文件将转换为多点要素。这是默认设置。
  • RECURSION位于输入文件夹子目录中的所有 LAS 文件将转换为多点要素。
Boolean

代码示例

LASToMultipoint 示例 1(Python 窗口)

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

arcpy.env.workspace = "C:/data"
arcpy.LASToMultipoint_3d("001.las", "Test.gdb/feature_dataset/sample_1", 1.5, 
                        "2", "ANY_RETURNS", "INTENSITY", "Coordinate Systems"\
                        "/Projected Coordinate Systems/UTM/NAD 1983/NAD 1983 "\
                        "UTM Zone 17N.prj", "las", 1)
LASToMultipoint 示例 2(独立脚本)

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

'''****************************************************************************
Name: Define Data Boundary of LAS File
Description: This script demonstrates how to delineate data boundaries of 
             LAS files with irregularly clustered points. It is intended for 
             use as a script tool with one input LAS file.
****************************************************************************'''
# Import system modules
import arcpy

# Set local variables
inLas = arcpy.GetParameterAsText(0)  # input LAS file
ptSpacing = arcpy.GetParameterAsText(1)  # LAS point spacing
classCode = arcpy.GetParameterAsText(2)  # List of integers
returnValue = arcpy.GetParameterAsText(3)  # List of strings
outTin = arcpy.GetParameterAsText(4)  # TIN created to delineate data area
outBoundary = arcpy.GetParameterAsText(5)  # Polygon boundary file

try:
    # Execute LASToMultipoint
    lasMP = arcpy.CreateUniqueName('lasMultipoint', 'in_memory')
    arcpy.ddd.LASToMultipoint(inLas, LasMP, ptSpacing, class_code, 
                             "ANY_RETURNS", "", sr, inFormat, zfactor)
    # Execute CreateTin
    arcpy.ddd.CreateTin(outTin, sr, "{0} Shape.Z masspoints"\
                       .format(lasMP), "Delaunay")
    # Execute CopyTin
    arcpy.ddd.CopyTin(outTin, "{0}_copy".format(outTin))
    # Execute DelineateTinDataArea
    maxEdge = ptSpacing * 4
    arcpy.ddd.DelineateTinDataArea(outTin, maxEdge, "PERIMETER_ONLY")
    # Execute TinDomain
    arcpy.ddd.TinDomain(outTin, outBoundary, "POLYGON")
        
except arcpy.ExecuteError:
    print(arcpy.GetMessages())
except Exception as err:
    print(err)

许可信息

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

相关主题