Extract LAS (3D Analyst)—ArcGIS Pro (2023)

Summary

Creates new LAS files from point cloud data in a LAS dataset or point cloud scene layer.

Illustration

Extract LAS (3D Analyst)—ArcGIS Pro (1)

Usage

  • This tool creates new .las or .zlas files from an input LAS dataset or point cloud scene layer package (.slpk file). When the input is a LAS dataset, one output file will be created for each .las or .zlas file referenced by the LAS dataset. When the input is a point cloud scene layer, the number of output files depends on the number of points being extracted. Each output file is limited in size to approximately 16.7 million points. When multiple files are created, the resulting files may have overlapping extents, which can lead to inefficient data processing in certain situations. Consider using the Tile LAS tool to reorganize the files extracted from a point cloud scene layer into a specific tiling scheme with nonoverlapping extents.

  • You can extract a subset of the input point cloud by specifying a processing extent, extraction boundary, or both. When a processing extent is provided with an extraction boundary, the intersection of both defines the coverage of the extracted .las files. If neither the processing extent nor the extraction boundary is defined, the full extent of the input point cloud will be extracted to the output .las files. Additionally, you can apply a point filter to the input point cloud to limit the points that will be extracted based on any combination of classification codes, classification flags, and return values. Define the point filters by loading the layer into an active map or scene and specifying the desired filters in the Layer Properties dialog box. You can also define point filters for the LAS dataset using the Make LAS Dataset Layer tool.

  • This tool can be used to reproject the spatial reference of the input point cloud to a different horizontal and vertical coordinate system by setting the Output Coordinate System environment. The spatial reference of a .las file can be defined in either its header or an auxiliary .prj file using the well-known text (WKT) convention. The .prj file must reside in the same location as the .las file and have the same name as the .las file. When present, the .prj file will override the spatial reference information in the .las file header. You can create .prj files for .las files with missing or incorrectly defined spatial reference using the Define Projection tool for an individual .las or .zlas file or the Create LAS Dataset tool with the PRJ option enabled.

  • It is not uncommon for LAS point records to be stored in the .las file in a binary sequence that does not correspond with the spatial clustering of the points. When data of such distribution is queried, it can result in less efficient access to the binary records that represent the LAS points. Rearranging the points in the resulting .las file will optimize the data for visualization and other spatial operations. Statistics will automatically be calculated when the rearrange option is enabled. If you choose not to rearrange the LAS points, you can enable or disable the calculation of statistics. Calculating statistics will optimize spatial queries and provide a summary of the class codes and return values that are present in the .las file. However, it will also add time to the processing of this tool. If the resulting .las files will not be used in ArcGIS, you can disable the calculation of statistics so that the tool can process faster.

Parameters

LabelExplanationData Type

Input Point Cloud

The LAS dataset or point cloud scene layer package (.slpk file) to process.

LAS Dataset Layer; Scene Layer; File

Target Folder

The existing folder to which the output .las files will be written.

Folder

Processing Extent

(Optional)

The extent of the data that will be evaluated.

  • Default—The extent will be based on the maximum extent of all participating inputs. This is the default.
  • Union of Inputs—The extent will be based on the maximum extent of all inputs.
  • Intersection of Inputs—The extent will be based on the minimum area common to all inputs.
  • Current Display Extent—The extent is equal to the visible display. The option is not available when there is no active map.
  • As Specified Below—The extent will be based on the minimum and maximum extent values specified.
  • Browse—The extent will be based on an existing dataset.
Extent

Extraction Boundary

(Optional)

A polygon boundary that defines the area of the .las files that will be clipped.

Feature Layer

Process entire LAS files that intersect extent

(Optional)

Specifies how the area of interest will be used in determining how .las files will be processed. The area of interest is defined by the Processing Extent parameter value, the Processing Boundary parameter value, or a combination of both.

  • Unchecked—Only LAS points that intersect the area of interest will be processed. This is the default.
  • Checked—If 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.
Boolean

Output File Name Suffix

(Optional)

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.

String

Remove Variable Length Records

(Optional)

Specifies whether variable length records (VLRs) will be removed. Each .las file may potentially contain a set of VLRs that were added by the software that produced it. The meaning of these records is typically only known by the originating software. Unless the output LAS data will be processed by an application that understands this information, retaining the VLRs may not provide any value-added functionality. Removing the VLRs can potentially save significant disk space depending on their total size and the number of files containing them.

  • Unchecked—The variable length records in the input .las files will not be removed and will remain in the output .las files. This is the default.
  • Checked—The variable length records in the input .las files will be removed from the output .las files.
Boolean

Rearrange points

(Optional)

Specifies whether points in the .las files will be rearranged.

  • Unchecked—The order of the points in the .las files will not be rearranged.
  • Checked—The points in the .las files will be rearranged. This is the default.
Boolean

Compute Statistics

(Optional)

Specifies whether statistics will be computed for the .las files referenced by the LAS dataset. Computing statistics provides a spatial index for each .las file, which improves analysis and display performance. Statistics also enhance the filtering and symbology experience by limiting the display of LAS attributes, such as classification codes and return information, to values that are present in the .las file.

  • Checked—Statistics will be computed. This is the default.
  • Unchecked—Statistics will not be computed.
Boolean

Output LAS Dataset

(Optional)

The output LAS dataset referencing the newly created .las files.

LAS Dataset

Compression

(Optional)

Specifies whether the output .las file will be in a compressed format or the standard LAS format.

  • Same As InputThe compression will be the same as the input. This option is only available when the input is a LAS dataset, and it is the default in that case.
  • No CompressionThe output will be in the standard LAS format (*.las). This is the default when the input is a point cloud scene layer.
  • zLAS CompressionOutput .las files will be compressed in the zLAS format.
String

Derived Output

LabelExplanationData Type
Output Folder

The folder to which the .las files will be written.

Folder
arcpy.ddd.ExtractLas(in_las_dataset, target_folder, {extent}, {boundary}, {process_entire_files}, {name_suffix}, {remove_vlr}, {rearrange_points}, {compute_stats}, {out_las_dataset}, {compression})
NameExplanationData Type

in_las_dataset

The LAS dataset or point cloud scene layer package (.slpk file) to process.

LAS Dataset Layer; Scene Layer; File

target_folder

The existing folder to which the output .las files will be written.

Folder

extent

(Optional)

The extent of the data that will be evaluated.

  • MAXOF—The maximum extent of all inputs will be used.
  • MINOF—The minimum area common to all inputs will be used.
  • DISPLAY—The extent is equal to the visible display.
  • Layer name—The extent of the specified layer will be used.
  • Extent object—The extent of the specified object will be used.
  • Space delimited string of coordinates—The extent of the specified string will be used. Coordinates are expressed in the order of x-min, y-min, x-max, y-max.
Extent

boundary

(Optional)

A polygon boundary that defines the area of the .las files that will be clipped.

Feature Layer

process_entire_files

(Optional)

Specifies how the processing extent will be 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.
Boolean

name_suffix

(Optional)

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.

String

remove_vlr

(Optional)

Specifies whether variable length records (VLRs) will be removed. Each .las file may potentially contain a set of VLRs that were added by the software that produced it. The meaning of these records is typically only known by the originating software. Unless the output LAS data will be processed by an application that understands this information, retaining the VLRs may not provide any value-added functionality. Removing the VLRs can potentially save significant disk space depending on their total size and the number of files containing them.

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

rearrange_points

(Optional)

Specifies whether points in the .las files will be rearranged.

  • MAINTAIN_POINTSThe order of the points in the .las files will not be rearranged.
  • REARRANGE_POINTSThe points in the .las files will be rearranged. This is the default.
Boolean

compute_stats

(Optional)

Specifies whether statistics will be computed for the .las files referenced by the LAS dataset. Computing statistics provides a spatial index for each .las file, which improves analysis and display performance. Statistics also enhance the filtering and symbology experience by limiting the display of LAS attributes, such as classification codes and return information, to values that are present in the .las file.

  • COMPUTE_STATSStatistics will be computed. This is the default.
  • NO_COMPUTE_STATSStatistics will not be computed.
Boolean

out_las_dataset

(Optional)

The output LAS dataset referencing the newly created .las files.

LAS Dataset

compression

(Optional)

Specifies whether the output .las file will be in a compressed format or the standard LAS format.

  • SAME_AS_INPUTThe compression will be the same as the input. This option is only available when the input is a LAS dataset, and it is the default in that case.
  • NO_COMPRESSIONThe output will be in the standard LAS format (*.las). This is the default when the input is a point cloud scene layer.
  • ZLASOutput .las files will be compressed in the zLAS format.
String

Derived Output

NameExplanationData Type
out_folder

The folder to which the .las files will be written.

Folder

Code sample

ExtractLas example 1 (Python window)

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

import arcpyfrom arcpy import envenv.workspace = 'C:/data'arcpy.ddd.ExtractLas('test.lasd', 'c:/lidar/subset', boundary='study_area.shp', name_suffix='subset', remove_vlr=True, rearrange_points='REARRANGE_POINTS', out_las_dataset='extracted_lidar.lasd')
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 FileDescription: 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 modulesimport arcpyimport tempfileimport mathin_las_file = arcpy.GetParameterAsText(0)tile_width = arcpy.GetParameter(1) # double in LAS file's XY linear unittile_height = arcpy.GetParameter(2) # double in LAS file's XY linear unitout_folder = arcpy.GetParameterAsText(3) # folder for LAS filesout_name_suffix = arcpy.GetParameterAsText(4) # basename for output filesout_lasd = arcpy.GetParameterAsText(5) # output LAS datasettry: temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir()) arcpy.management.CreateLasDataset(in_las_file, temp_lasd, compute_stats='COMPUTE_STATS') 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, str(row).zfill(digits), str(col).zfill(digits)) arcpy.ddd.ExtractLas(temp_lasd, out_folder, arcpy.Extent(xMin, yMin, xMax, yMax), name_suffix=name_suffix, rearrange_points='REARRANGE_POINTS', compute_stats='COMPUTE_STATS') arcpy.env.workspace = out_folder arcpy.management.CreateLasDataset(arcpy.ListFiles('*{0}*.las'.format(out_name_suffix)), out_lasd, compute_stats='COMPUTE_STATS', relative_paths='RELATIVE_PATHS')except arcpy.ExecuteError: print(arcpy.GetMessages())

Environments

Current Workspace, Extent, Output Coordinate System, Geographic Transformations

Licensing information

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

Related topics

  • An overview of the Point Cloud toolset
  • Find a geoprocessing tool

Feedback on this topic?

Top Articles
Latest Posts
Article information

Author: Edmund Hettinger DC

Last Updated: 03/03/2023

Views: 6511

Rating: 4.8 / 5 (78 voted)

Reviews: 93% of readers found this page helpful

Author information

Name: Edmund Hettinger DC

Birthday: 1994-08-17

Address: 2033 Gerhold Pine, Port Jocelyn, VA 12101-5654

Phone: +8524399971620

Job: Central Manufacturing Supervisor

Hobby: Jogging, Metalworking, Tai chi, Shopping, Puzzles, Rock climbing, Crocheting

Introduction: My name is Edmund Hettinger DC, I am a adventurous, colorful, gifted, determined, precious, open, colorful person who loves writing and wants to share my knowledge and understanding with you.