Make LAS Dataset Layer (Data Management)

Summary

Creates a LAS dataset layer that can apply filters to LAS points and control the enforcement of surface constraint features.

Usage

  • A LAS dataset layer can be used to filter LAS points and control which surface constraint features are enforced when triangulating a surface from the LAS dataset. LAS points can be filtered using the classification codes, classification flags, and return values associated with each point. The filters are honored by various tools that process the LAS dataset. For example, a raster surface modeling the bare earth can be constructed by filtering for ground classified points and using the resulting layer as input for the LAS Dataset To Raster tool.

    Note:

    The layer produced by this tool can be preserved as a layer file using the Save To Layer File tool.

  • You can use the LAS dataset layer properties dialog box to filter LAS points and surface constraints when working with a LAS dataset layer in a map or scene. It provides a convenient mechanism for managing the filter options. This tool is useful for enforcing LAS dataset filters in the context of an automated solution authored through ModelBuilder or Python.

  • The classification codes, classification flags, and return values supported in a given LAS file will depend on that file's version and point record format. When no values present in the input LAS files are specified to define a filter, the resulting layer will yield no points. The classification codes, classification flags, and return values present in a LAS dataset can be established by calculating statistics.

    Learn more about working with LAS dataset statistics

Parameters

LabelExplanationData Type
Input LAS Dataset

The LAS dataset that will be processed.

LAS Dataset Layer
Output Layer

The name of the resulting LAS dataset layer. A backslash or forward slash can be used to denote a group layer.

LAS Dataset Layer
Class Codes
(Optional)

Specifies the classification codes that will be used to filter LAS points. All class codes will be selected by default.

  • 0Never processed by a classification method
  • 1Processed by a classification method but could not be determined
  • 2Bare earth measurements
  • 3Vegetation whose height is considered to be low for the area
  • 4Vegetation whose height is considered to be intermediate for the area
  • 5Vegetation whose height is considered to be high for the area
  • 6Structure with roof and walls
  • 7Erroneous or undesirable data that is closer to the ground
  • 8Reserved for later use, but used for model key points in LAS 1.1 - 1.3
  • 9Water
  • 10Railway tracks used by trains
  • 11Road surfaces
  • 12Reserved for later use, but used for overlap points in LAS 1.1 - 1.3
  • 13Shielding around electrical wires
  • 14Power lines
  • 15A lattice tower used to support an overhead power line
  • 16A mechanical assembly that joins an electrical circuit
  • 17The surface of a bridge
  • 18Erroneous or undesirable data that is far from the ground
  • 19 - 63Reserved class codes for ASPRS designation
  • 64 - 255User-definable class codes
String
Return Values
(Optional)

Specifies the ordinal pulse return values that will be used to filter LAS points. All returns will be used when no value is specified. Return information is only available for LAS point clouds collected from a lidar scanner. The return number reflects the order of discrete points obtained from the lidar pulse, whereby the first return is closest to the scanner and the last return is farthest from the scanner.

  • LASTThe last point from all lidar pulses will be used.
  • FIRST_OF_MANYThe first point from each lidar pulse with multiple returns will be used.
  • LAST_OF_MANYThe last point from each lidar pulse with multiple returns will be used.
  • SINGLEAll points from lidar pulses with only one return will be used.
  • 1All points with a return value of 1 will be used.
  • 2All points with a return value of 2 will be used.
  • 3All points with a return value of 3 will be used.
  • 4All points with a return value of 4 will be used.
  • 5All points with a return value of 5 will be used.
  • 6All points with a return value of 6 will be used.
  • 7All points with a return value of 7 will be used.
  • 8All points with a return value of 8 will be used.
  • 9All points with a return value of 9 will be used.
  • 10All points with a return value of 10 will be used.
  • 11All points with a return value of 11 will be used.
  • 12All points with a return value of 12 will be used.
  • 13All points with a return value of 13 will be used.
  • 14All points with a return value of 14 will be used.
  • 15All points with a return value of 15 will be used.
String
Unflagged Points
(Optional)

Specifies whether data points that do not have classification flags assigned will be included.

  • Checked—Unflagged points will be included. This is the default.
  • Unchecked—Unflagged points will be excluded.
Boolean
Synthetic Points
(Optional)

Specifies whether data points flagged as synthetic will be included. Synthetic points refer to LAS points that originated from a data source other than a lidar scanner.

  • Checked—Synthetic points will be included. This is the default.
  • Unchecked—Synthetic points will be excluded.
Boolean
Model Key-Point
(Optional)

Specifies whether data points flagged as model key points will be included. Model key points refer to LAS points that are significant for modeling the object they are associated with.

  • Checked—Model key points will be included. This is the default.
  • Unchecked—Model key points will be excluded.
Boolean
Withheld Points
(Optional)

Specifies whether data points flagged as withheld will be included. Withheld points represent erroneous or undesired measurements captured in the LAS points.

  • Checked—Withheld points will be included.
  • Unchecked—Withheld points will be excluded. This is the default.
Boolean
Surface Constraints
(Optional)

The name of the surface constraint features that will be enabled in the layer. All constraints are enabled by default.

String
Overlap Points
(Optional)

Specifies whether data points flagged as overlap will be included. Overlap points refer to points collected in overlapping scans that typically have a larger scan angle. Filtering overlap points can help ensure a regular distribution of LAS points is achieved across the extent of the data.

  • Checked—Overlap points will be included. This is the default.
  • Unchecked—Overlap points will be excluded.
Boolean

arcpy.management.MakeLasDatasetLayer(in_las_dataset, out_layer, {class_code}, {return_values}, {no_flag}, {synthetic}, {keypoint}, {withheld}, {surface_constraints}, {overlap})
NameExplanationData Type
in_las_dataset

The LAS dataset that will be processed.

LAS Dataset Layer
out_layer

The name of the resulting LAS dataset layer. A backslash or forward slash can be used to denote a group layer.

LAS Dataset Layer
class_code
[class_code,...]
(Optional)

Specifies the classification codes that will be used to filter LAS points. All class codes will be selected by default.

  • 0Never processed by a classification method
  • 1Processed by a classification method but could not be determined
  • 2Bare earth measurements
  • 3Vegetation whose height is considered to be low for the area
  • 4Vegetation whose height is considered to be intermediate for the area
  • 5Vegetation whose height is considered to be high for the area
  • 6Structure with roof and walls
  • 7Erroneous or undesirable data that is closer to the ground
  • 8Reserved for later use, but used for model key points in LAS 1.1 - 1.3
  • 9Water
  • 10Railway tracks used by trains
  • 11Road surfaces
  • 12Reserved for later use, but used for overlap points in LAS 1.1 - 1.3
  • 13Shielding around electrical wires
  • 14Power lines
  • 15A lattice tower used to support an overhead power line
  • 16A mechanical assembly that joins an electrical circuit
  • 17The surface of a bridge
  • 18Erroneous or undesirable data that is far from the ground
  • 19 - 63Reserved class codes for ASPRS designation
  • 64 - 255User-definable class codes
String
return_values
[return_values,...]
(Optional)

Specifies the ordinal pulse return values that will be used to filter LAS points. All returns will be used when no value is specified. Return information is only available for LAS point clouds collected from a lidar scanner. The return number reflects the order of discrete points obtained from the lidar pulse, whereby the first return is closest to the scanner and the last return is farthest from the scanner.

  • LASTThe last point from all lidar pulses will be used.
  • FIRST_OF_MANYThe first point from each lidar pulse with multiple returns will be used.
  • LAST_OF_MANYThe last point from each lidar pulse with multiple returns will be used.
  • SINGLEAll points from lidar pulses with only one return will be used.
  • 1All points with a return value of 1 will be used.
  • 2All points with a return value of 2 will be used.
  • 3All points with a return value of 3 will be used.
  • 4All points with a return value of 4 will be used.
  • 5All points with a return value of 5 will be used.
  • 6All points with a return value of 6 will be used.
  • 7All points with a return value of 7 will be used.
  • 8All points with a return value of 8 will be used.
  • 9All points with a return value of 9 will be used.
  • 10All points with a return value of 10 will be used.
  • 11All points with a return value of 11 will be used.
  • 12All points with a return value of 12 will be used.
  • 13All points with a return value of 13 will be used.
  • 14All points with a return value of 14 will be used.
  • 15All points with a return value of 15 will be used.
String
no_flag
(Optional)

Specifies whether data points that do not have classification flags assigned will be included for display and analysis.

  • INCLUDE_UNFLAGGEDUnflagged points will be included. This is the default.
  • EXCLUDE_UNFLAGGEDUnflagged points will be excluded.
Boolean
synthetic
(Optional)

Specifies whether data points flagged as synthetic will be included. Synthetic points refer to LAS points that originated from a data source other than a lidar scanner.

  • INCLUDE_SYNTHETICSynthetic points will be included. This is the default.
  • EXCLUDE_SYNTHETICSynthetic points will be excluded.
Boolean
keypoint
(Optional)

Specifies whether data points flagged as model key points will be included. Model key points refer to LAS points that are significant for modeling the object they are associated with.

  • INCLUDE_KEYPOINTModel key points will be included. This is the default.
  • EXCLUDE_KEYPOINTModel key points will be excluded.
Boolean
withheld
(Optional)

Specifies whether data points flagged as withheld will be included. Withheld points represent erroneous or undesired measurements captured in the LAS points.

  • INCLUDE_WITHHELDWithheld points will be included.
  • EXCLUDE_WITHHELDWithheld points will be excluded. This is the default.
Boolean
surface_constraints
[surface_constraints,...]
(Optional)

The name of the surface constraint features that will be enabled in the layer. All constraints are enabled by default.

String
overlap
(Optional)

Specifies whether data points flagged as overlap will be included. Overlap points refer to points collected in overlapping scans that typically have a larger scan angle. Filtering overlap points can help ensure a regular distribution of LAS points is achieved across the extent of the data.

  • INCLUDE_OVERLAPOverlap points will be included. This is the default.
  • EXCLUDE_OVERLAPOverlap points will be excluded.
Boolean

Code sample

MakeLasDatasetLayer example 1 (Python window)

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

arcpy.env.workspace = 'C:/data'
arcpy.management.MakeLasDatasetLayer('Baltimore.lasd', 'Baltimore Layer',
                                     class_code=[2, 6], return_values=['LAST', 'SINGLE'])
MakeLasDatasetLayer example 2 (stand-alone script)

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

'''*********************************************************************
Name: Export Elevation Raster from Ground LAS Measurements
Description: This script demonstrates how to export
             ground measurements from LAS files to a raster using a
             LAS dataset. This sample is designed to be used as a script
             tool.
*********************************************************************'''
# Import system modules
import arcpy

try:
    # Set Local Variables
    inLas = arcpy.GetParameterAsText(0)
    recursion = arcpy.GetParameterAsText(1)
    surfCons = arcpy.GetParameterAsText(2)
    classCode = arcpy.GetParameterAsText(3)
    returnValue = arcpy.GetParameterAsText(4)
    spatialRef = arcpy.GetParameterAsText(5)
    lasD = arcpy.GetParameterAsText(6)
    outRaster = arcpy.GetParameterAsText(7)
    cellSize = arcpy.GetParameter(8)
    zFactor = arcpy.GetParameter(9)

    # Execute CreateLasDataset
    arcpy.management.CreateLasDataset(inLas, lasD, recursion, surfCons, sr)
    # Execute MakeLasDatasetLayer
    lasLyr = arcpy.CreateUniqueName('Baltimore')
    arcpy.management.MakeLasDatasetLayer(lasD, lasLyr, classCode, returnValue)
    # Execute LasDatasetToRaster
    arcpy.conversion.LasDatasetToRaster(lasLyr, outRaster, 'ELEVATION',
                              'TRIANGULATION LINEAR WINDOW_SIZE 10', 'FLOAT',
                              'CELLSIZE', cellSize, zFactor)
    print(arcpy.GetMessages())

except arcpy.ExecuteError:
    print(arcpy.GetMessages())

except Exception as err:
    print(err.args[0])

finally:
    arcpy.management.Delete(lasLyr)

Environments