LAS 转多点 (3D Analyst)

许可等级:BasicStandardAdvanced

摘要

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

插图

LAS to Multipoint

用法

语法

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

包含 LAS 1.0、1.1 和 1.2 版本格式数据的一个或多个文件或文件夹。LAS 格式是激光雷达数据的行业标准。

Folder or File
out_feature_class

输出要素类。

Feature Class
average_point_spacing

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

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

用作 LAS 数据点的查询过滤器的分类代码。有效值范围是 1 到 32。默认情况下,不应用任何过滤器。

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

用作查询过滤器的返回值。有效返回值为 1-5、LAST_RETURNS 和 ANY_RETURNS。默认值为 ANY_RETURNS。

String
attribute
[[keyword, name],...]
(可选)

要加载和存储的一个或多个 LAS 属性与要使用的字段名称(可选)。默认设置为“无”。支持的属性关键字为 INTENSITY、RETURN_NUMBER、NUMBER_OF_RETURNS、SCAN_DIRECTION_FLAG、EDGE_OF_FLIGHTLINE、CLASSIFICATION、SCAN_ANGLE_RANK、FILE_MARKER、USER_BIT_FIELD 和 GPS_TIME。

Value Table
input_coordinate_system
(可选)

输入 LAS 文件的坐标系。此坐标系的默认设置在 LAS 文件中进行指定。如果由于某种原因未在该文件中对其进行定义,但您知道它的具体内容,可在此处加以指定。

Coordinate System
file_suffix
(可选)

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

String
z_factor
(可选)

Z 值将乘上的系数。此值通常用于转换 Z 线性单位来匹配 XY 线性单位。默认值为 1,此时高程值保持不变。

Double
folder_recursion
(可选)

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

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

代码实例

LASToMultipoint 示例 1(Python 窗口)

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

import arcpy
from arcpy import env

arcpy.CheckOutExtension("3D")
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
import exceptions, sys, traceback

# 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:
    arcpy.CheckOutExtension("3D")
    # Execute LASToMultipoint
    arcpy.AddMessage("Creating multipoint features from LAS...")
    lasMP = arcpy.CreateUniqueName('lasMultipoint', 'in_memory')
    arcpy.ddd.LASToMultipoint(inLas, LasMP, ptSpacing, class_code, 
                             "ANY_RETURNS", "", sr, inFormat, zfactor)
    # Execute CreateTin
    arcpy.AddMessage("Creating TIN dataset...")
    arcpy.ddd.CreateTin(outTin, sr, "{0} Shape.Z masspoints"\
                       .format(lasMP), "Delaunay")
    # Execute CopyTin
    arcpy.AddMessage("Copying TIN to delineate data boundary...")
    arcpy.ddd.CopyTin(outTin, "{0}_copy".format(outTin))
    # Execute DelineateTinDataArea
    arcpy.AddMessage("Delineating TIN boundary...")
    maxEdge = ptSpacing * 4
    arcpy.ddd.DelineateTinDataArea(outTin, maxEdge, "PERIMETER_ONLY")
    # Execute TinDomain
    arcpy.AddMessage("Exporting data area to polygon boundary...")
    arcpy.ddd.TinDomain(outTin, outBoundary, "POLYGON")
    arcpy.AddMessage("Finished")
    arcpy.CheckInExtension("3D")
        
except arcpy.ExecuteError:
    print arcpy.GetMessages()
except:
    # Get the traceback object
    tb = sys.exc_info()[2]
    tbinfo = traceback.format_tb(tb)[0]
    # Concatenate error information into message string
    pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\
          .format(tbinfo, str(sys.exc_info()[1]))
    msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2))
    # Return python error messages for script tool or Python Window
    arcpy.AddError(pymsg)
    arcpy.AddError(msgs)

环境

相关主题

许可信息

ArcGIS for Desktop Basic: 需要 3D Analyst
ArcGIS for Desktop Standard: 需要 3D Analyst
ArcGIS for Desktop Advanced: 需要 3D Analyst
5/10/2014