Skip To Content

Extract LAS


Extracts LAS files that overlay the clip features or extent.



  • When a LAS dataset is specified as input, all the data points in the LAS files it references will be processed. A subset of lidar data can also be selected by its classification codes, classification flags, and return values by applying the desired LAS point filters through a LAS dataset layer. Filters can be defined through the layer properties dialog or the Make LAS Dataset Layer tool.

  • Consider using this tool to extract a subset of lidar data captured in the source lidar files. For example, if you only need to work in an area defined by a polygon boundary, you can extract the LAS file using the polygon as the boundary feature.

  • To re-project LAS files, specify the desired spatial reference in the Output Coordinate System Environment Setting.

  • If the extraction extent is defined along with an extraction boundary, the intersection of both will be used to define the coverage of the extracted LAS files.

  • The Rearrange Points parameter, if checked (rearrange_points='REARRANGE_POINTS' in Python), orders the point records into spatial clusters that are optimized for reading the files. This optimization dramatically enhances display throughout the ArcGIS platform. Rearranging points will add some processing time to complete. Since rearranging the order of points for improved data access is a fundamental improvement to the data, this parameter is checked by default.


ExtractLas_3d (in_las_dataset, target_folder, {extent}, {boundary}, {process_entire_files}, {name_suffix}, {remove_vlr}, {rearrange_points}, {compute_stats}, {out_las_dataset})
ParameterExplanationData Type

The LAS dataset to process.

LAS Dataset Layer

The folder that LAS files will be written out to. Each output file will have the same LAS file version and point record format as the input file.


Specify the extent of the data that will be evaluated by this tool.


A polygon boundary that defines the locations where LAS files will be extracted.

Feature Layer

Specify how the processing extent is applied.

  • PROCESS_EXTENTOnly LAS points that intersect the area of interest will be processed. This is the default.
  • PROCESS_ENTIRE_FILESIf any portion of a LAS file intersects the area of interest, all the points in that LAS file, including those outside the area of interest, will be processed.

The text that will be appended to the name of each output LAS file. Each file will inherit its base name from its source file, followed by the suffix specified in this parameter.


Determines whether to remove the additional variable length records or to keep them in the LAS files.

  • MAINTAIN_VLRAny data stored in the processed LAS file's variable length records will remain in the extracted LAS files. This is the default.
  • REMOVE_VLRThe additional variable length records will be removed from the LAS files.

Determines whether to rearrange points in the LAS files.

  • REARRANGE_POINTSThe order of the points in the LAS files will remain the same.
  • MAINTAIN_POINTSThe points in the LAS files will be rearranged. This is the default.

Specifies whether statistics should be computed for the LAS files referenced by the LAS dataset. The presence of statistics allows the LAS dataset layer's filtering and symbology options to only show LAS attribute values that exist in the LAS files.

  • COMPUTE_STATS Statistics will be computed.
  • NO_COMPUTE_STATS Statistics will not be computed. This is the default.

The output LAS Dataset.

LAS Dataset

Code sample

ExtractLas example 1 (Python window)

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

import arcpy
from arcpy import env

env.workspace = 'C:/data'
arcpy.ddd.ExtractLas('test.lasd', 'c:/lidar/subset', boundary='study_area.shp',
                     name_suffix='subset', remove_vlr=True, 
ExtractLas example 2 (stand-alone script)

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

Name: Split Large LAS File
Description: Divides a large LAS file whose point distribution covers the full
             XY extent of the data into smaller files to optimize performance
             when reading lidar data.
# Import system modules
import arcpy
import tempfile
import math

in_las_file = arcpy.GetParameterAsText(0)
tile_width = arcpy.GetParameter(1) # double in LAS file's XY linear unit
tile_height = arcpy.GetParameter(2) # double in LAS file's XY linear unit
out_folder = arcpy.GetParameterAsText(3) # folder for LAS files
out_name_suffix = arcpy.GetParameterAsText(4) # basename for output files
out_lasd = arcpy.GetParameterAsText(5) # output LAS dataset

    temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir()), temp_lasd, 
    desc = arcpy.Describe(temp_lasd)
    total_columns = int(math.ceil(desc.extent.width/tile_width))
    total_rows = int(math.ceil(desc.extent.height/tile_height))
    digits = int(math.log10(max(cols, rows))) + 1
    for row in range(1, total_rows+1):
        yMin = desc.extent.YMin + tile_height*(row-1)
        yMax = desc.extent.YMin + tile_height*(row)
        for col in range (1, total_columns+1):
            xMin = desc.extent.XMin + tile_width*(col-1)
            xMax = desc.extent.XMax + tile_width*(col)
            name_suffix = '_{0}_{1}x{2}'.format(out_name_suffix, 
            arcpy.ddd.ExtractLas(temp_lasd, out_folder, 
                                 arcpy.Extent(xMin, yMin, xMax, yMax),
    arcpy.env.workspace = out_folder'*{0}*.las'.format(out_name_suffix)),
                                      out_lasd, compute_stats='COMPUTE_STATS',
except arcpy.ExecuteError:

Licensing information

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

Related topics