Thin LAS (3D Analyst)

Summary

Creates new LAS files that contain a subset of LAS points from the input LAS dataset.

Usage

  • Consider using this tool on over-sampled LAS data—such as photogrammetrically derived point clouds and returns from multiple overlapping lidar scans—to optimize display performance and speed up analysis operations. In mobile lidar surveys, extremely dense point returns can be captured due to the variation of the speed and movement pattern of the lidar sensor. Thinning can help create consistent density across the survey, which can help improve the result of certain automated classification routines that rely on regularly spaced point returns.

  • Consider preserving class codes that represent sparsely captured objects, particularly if the number of points with that class code designation represent a small fraction of the total number of points. For example, if you have points representing sparsely captured features, such as powerlines, preserving them can provide a useful context about its spatial arrangement that would otherwise be lost if those points were thinned.

  • Each LAS file is thinned independently from the other LAS files referenced by the LAS dataset. If the LAS files have overlapping data, consider merging them into nonoverlapping tiles to achieve uniform distribution of data by merging the points through the Tile LAS tool.

  • Each input LAS file will generate an output file with a name that matches the input unless a name suffix is specified in the Output File Name Suffix parameter.

Syntax

arcpy.3d.ThinLas(in_las_dataset, target_folder, thinning_dimension, xy_resolution, {z_resolution}, point_selection_method, {class_codes_weights}, {name_suffix}, {out_las_dataset}, {preserved_class_codes}, {preserved_flags}, {preserved_returns}, {excluded_class_codes}, {excluded_flags}, {excluded_returns}, {compression}, {remove_vlr}, {rearrange_points}, {compute_stats})
ParameterExplanationData Type
in_las_dataset

The LAS dataset to process.

LAS Dataset Layer
target_folder

The existing folder that the output LAS files will be written to.

Folder
thinning_dimension

The type of thinning operation that will be conducted.

  • 2DThinning will occur in tiles defined along the x,y-axis.
  • 3DThinning will occur in volumes of space defined by tiles along the x,y-axis, and height gradients along the z-axis. This is the default.
String
xy_resolution

The size of each side of the thinning tile along the x,y-axis.

Linear Unit
z_resolution
(Optional)

The height of each thinning region when using the 3D thinning method.

Linear Unit
point_selection_method

The method used to determine which points are retained in each thinning region.

  • CLOSEST_TO_CENTERThe LAS point that is closest to the center of the region being thinned. This is the default.
  • CLASS_CODEThe LAS points with the class code that has the highest weight assigned.
  • PREDOMINANT_CLASSThe LAS points with the most frequent class code value in the region being thinned.
  • Z_MINThe lowest LAS point in the region being thinned.
  • Z_MAXThe highest LAS point in the region being thinned.
  • Z_MIN_MAXThe highest and lowest LAS points in the region being thinned.
  • Z_AVERAGEThe LAS point whose height is closest to the average of height of all points in the region being thinned.
  • INTENSITY_MINThe LAS point whose intensity value is the lowest among the points in the region being thinned.
  • INTENSITY_MAXThe LAS point whose intensity value is the highest among the points in the region being thinned.
  • INTENSITY_MIN_MAXThe two LAS points with the lowest and the highest intensity values among the points in the region being thinned.
  • INTENSITY_AVERAGEThe LAS point whose intensity value is closest to the average of all intensity values from points in the region being thinned.
String
class_codes_weights
[class_codes_weights,...]
(Optional)

The weights assigned to each class code that determine which points are retained in each thinning region. This parameter is only enabled when the Class Code Weights option is specified in the Point Selection Method parameter. The class code with the highest weight will be retained in the thinning region. If two class codes with the same weight exist in a given thinning region, the class code with the smallest point source ID will be retained.

Value Table
name_suffix
(Optional)

The name added to each output file.

String
out_las_dataset
(Optional)

The output LAS dataset referencing the newly created LAS files.

LAS Dataset
preserved_class_codes
[preserved_class_codes,...]
(Optional)

The input LAS points with the specified class code values will not be thinned from the output LAS files.

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

The input LAS points with the specified class flag designations will be preserved in the output LAS files.

  • MODEL_KEYPoints with the model key class flag will be preserved.
  • OVERLAPPoints with the overlap class flag will be preserved.
  • SYNTHETICPoints with the synthetic class flag will be preserved.
  • WITHHELDPoints with the withheld class flag will be preserved.
String
preserved_returns
[preserved_returns,...]
(Optional)

The input LAS points with the specified returns will be preserved in the output LAS files.

  • SINGLEAll single return points will be included.
  • LASTAll single and last returns will be included.
  • FIRST_OF_MANYAll points that are the first of multiple returns will be included.
  • LAST_OF_MANYAll points that are the last of multiple returns will be included.
String
excluded_class_codes
[excluded_class_codes,...]
(Optional)

The input LAS points with the specified class code values will be excluded from the output LAS files.

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

The input LAS points with the specified class flag designations will be excluded from the output LAS files.

  • MODEL_KEYPoints with the model key class flag will be excluded.
  • OVERLAPPoints with the overlap class flag will be excluded.
  • SYNTHETICPoints with the synthetic class flag will be excluded.
  • WITHHELDPoints with the withheld class flag will be excluded.
String
excluded_returns
[excluded_returns,...]
(Optional)

The input LAS points with the specified returns will be excluded from the output LAS files.

  • SINGLEAll single return points will be excluded.
  • LASTAll single and last returns will be excluded.
  • FIRST_OF_MANYAll points that are the first of multiple returns will be excluded.
  • LAST_OF_MANYAll points that are the last of multiple returns will be excluded.
String
compression
(Optional)

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

  • NO_COMPRESSIONThe output will be in the standard LAS format (*.las). This is the default.
  • ZLASOutput LAS files will be compressed in the zLAS format.
String
remove_vlr
(Optional)

Indicates whether variable length records stored with the input LAS points will be preserved or eliminated in the output LAS data.

  • MAINTAIN_VLRVariable length records will be maintained in the output LAS points. This is the default.
  • REMOVE_VLRVariable length records will be removed from the output LAS points.
Boolean
rearrange_points
(Optional)

Indicates if LAS points will be stored in spatially organized clusters.

  • MAINTAIN_POINTSThe order of the points in the LAS files will remain the same.
  • REARRANGE_POINTSThe points in the LAS files will be rearranged. This is the default.
Boolean
compute_stats
(Optional)

Specifies whether statistics should 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, like classification codes and return information, to values that are present in the LAS file.

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

Derived Output

NameExplanationData Type
output_folder

The folder with the output LAS files.

Folder

Code sample

ThinLas example 1 (Python window)

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

arcpy.env.workspace = 'C:/data'
arcpy.ddd.ThinLas('photogrammetric_cloud.lasd', 'thinned', '3D', 
                  '20 Centimeters', '15 Centimeters', 'Z_AVERAGE', 
                  excluded_flags='WITHHELD', rearrange_points='REARRANGE_POINTS')

Licensing information

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

Related topics