Label | Explanation | Data 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.
| 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.
| String |
Unflagged Points (Optional) | Specifies whether data points that do not have classification flags assigned will be included.
| 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.
| 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.
| 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.
| 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.
| Boolean |
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.
Parameters
arcpy.management.MakeLasDatasetLayer(in_las_dataset, out_layer, {class_code}, {return_values}, {no_flag}, {synthetic}, {keypoint}, {withheld}, {surface_constraints}, {overlap})
Name | Explanation | Data 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.
| 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.
| String |
no_flag (Optional) | Specifies whether data points that do not have classification flags assigned will be included for display and analysis.
| 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.
| 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.
| 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.
| 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.
| Boolean |
Code sample
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'])
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)