LAS To Multipoint (3D Analyst)

Summary

Creates multipoint features using one or more lidar files.

Illustration

LAS to Multipoint

Usage

  • This tool supports ZLAS and LAS file versions 1.0 to 1.4.

  • The LAS format supports the classification of each point based on the specifications defined by the American Society for Photogrammetry and Remote Sensing (ASPRS). The ArcGIS platform applies the classification scheme specified for LAS file version 1.4:

    Classification Value Classification Type

    0

    Never Classified

    1

    Unassigned

    2

    Ground

    3

    Low Vegetation

    4

    Medium Vegetation

    5

    High Vegetation

    6

    Building

    7

    Low Noise

    8

    Model Key / Reserved

    9

    Water

    10

    Rail

    11

    Road Surface

    12

    Overlap / Reserved

    13

    Wire – Guard

    14

    Wire – Conductor

    15

    Transmission Tower

    16

    Wire – Connector

    17

    Bridge Deck

    18

    High Noise

    19 – 63

    Reserved for ASPRS Definition (LAS 1.1 to 1.3 support up to class code 31)

    32 – 255

    User Definable (Only supported in LAS 1.0 and certain versions of 1.4)

    Note:

    While the bulk of new class code assignments introduced with LAS 1.4 were previously designated as Reserved, class codes 8 and 12 were changed from Model Key and Overlap to Reserved.

  • The LAS format supports the storage of numerous predefined attributes for each lidar point. If you do not know which attributes are available with a given collection of LAS files, consider using a LAS dataset to review the LAS file properties.

  • When loading multiple LAS attributes into an Oracle database, you'll need to make sure all DBTUNE keywords for parameter attribute_binary are set to use binary large objects (BLOBs), not LONGRAW. This is because LAS attributes are loaded as BLOBs, and Oracle does not support multiple BLOBs in LONGRAW tables. See your Oracle database administrator for assistance.

Syntax

arcpy.3d.LASToMultipoint(input, out_feature_class, average_point_spacing, {class_code}, {return}, {attribute}, {input_coordinate_system}, {file_suffix}, {z_factor}, {folder_recursion})
ParameterExplanationData Type
input
[input,...]

The LAS or ZLAS files that will be imported to a multipoint feature class. If a folder is specified, all the LAS files that reside therein will be imported.

In the tool dialog window, a folder can also be specified as an input by selecting the desired folder in Windows Explorer and dragging it into the parameter's input box.

Folder; File
out_feature_class

The feature class that will be produced by this tool.

Feature Class
average_point_spacing

The average 2D distance between points in the input file or files. This can be an approximation. If areas have been sampled at different densities, specify the smaller spacing. The value needs to be provided in the projection units of the output coordinate system.

Double
class_code
[class_code,...]
(Optional)

The classification codes to use as a query filter for LAS data points. Valid values range from 1 to 32. No filter is applied by default.

Long
return
[return,...]
(Optional)

The return values that will be used to filter the LAS points that get imported to multipoint features.

  • ANY_RETURNSAny returns
  • 11
  • 22
  • 33
  • 44
  • 55
  • 66
  • 77
  • 88
  • LAST_RETURNSLast returns
String
attribute
[[keyword, name],...]
(Optional)

The LAS point properties whose values will be stored in binary large object (BLOB) fields in the attribute table of the output. If the resulting features will participate in a terrain dataset, the stored attributes can be used to symbolize the terrain. The Name column indicates the name of the field that will be used to store the specified attributes. The following LAS properties are supported:

  • INTENSITYIntensity
  • RETURN_NUMBERReturn number
  • NUMBER_OF_RETURNSNumber of returns per pulse
  • SCAN_DIRECTION_FLAGScan direction flag
  • EDGE_OF_FLIGHTLINEEdge of flightline
  • CLASSIFICATIONClassification
  • SCAN_ANGLE_RANKScan angle rank
  • FILE_MARKERFile marker
  • USER_BIT_FIELDUser data value
  • GPS_TIMEGPS time
  • COLOR_REDRed band
  • COLOR_GREENGreen band
  • COLOR_BLUEBlue band
Value Table
input_coordinate_system
(Optional)

The coordinate system of the input LAS file.

Coordinate System
file_suffix
(Optional)

The suffix of the files to import from an input folder. This parameter is required when a folder is specified as input.

String
z_factor
(Optional)

The factor by which z-values will be multiplied. This is typically used to convert Z linear units to match XY linear units. The default is 1, which leaves elevation values unchanged. This parameter is disabled if the spatial reference of the input surface has a Z datum with a specified linear unit.

Double
folder_recursion
(Optional)

Scans through subfolders when an input folder is selected containing data in a subfolders directory. The output feature class will be generated with a row for each file encountered in the directory structure.

  • NO_RECURSIONOnly LAS files found in an input folder will be converted to multipoint features. This is the default.
  • RECURSIONAll LAS files residing in the subdirectories of an input folder will be converted to multipoint features.
Boolean

Code sample

LASToMultipoint example 1 (Python window)

The following sample demonstrates the use of this tool in the Python window.

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 example 2 (stand-alone script)

The following sample demonstrates the use of this tool in a stand-alone Python script.

'''****************************************************************************
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)

Licensing information

  • Basic: Requires 3D Analyst
  • Standard: Requires 3D Analyst
  • Advanced: Requires 3D Analyst

Related topics