Summary
Creates tiled LAS files that conform to a regular tiling scheme.
Usage
Consider using this tool to subdivide large LAS files into sizes that are optimized for data analysis, distribution, and archiving. The default tiling scheme produces square tiles whose width and height is defined by a target size limit of 250 MB. Points from multiple LAS files that fall within the area of one tile will be merged into the output tile.
Rearranging the LAS points will spatially cluster the lidar data and improve its performance when performing display and analysis operations. This process will require the creation of a temporary file. Consider specifying a folder on a solid-state drive as the Scratch Workspace in the environment settings to improve the speed of this operation.
Consider specifying the ZLAS compression if the lidar data is already classified and ready for archiving or distribution. ZLAS files are not editable and cannot be reclassified.
LAS tiles can be defined by one of the following methods:
- Specify a target file size of the uncompressed LAS file. This size is an estimate for a LAS tile with even point distribution across the entire extent.
- Specify a tile width and height.
- Specify an input feature to define the tiling schema. Each polygon should be rectangular and have a uniform width and height. LAS tiles will only be created for the portions of the LAS dataset that are covered by the input features.
The output LAS tiles can be reprojected by either specifying an Output Coordinate System in the environment settings or using input features with a different spatial reference than the original LAS files.
Custom LAS tile names can be assigned by using input features and choosing a text field in the Naming Method parameter.
Syntax
TileLas_3d (in_las_dataset, target_folder, {base_name}, {out_las_dataset}, {compute_stats}, {las_version}, {point_format}, {compression}, {las_options}, {tile_feature}, {naming_method}, {file_size}, {tile_width}, {tile_height}, {tile_origin})
Parameter | Explanation | Data Type |
in_las_dataset | The LAS dataset to process. | LAS Dataset Layer |
target_folder | The folder where the tiled LAS files will be written. | Folder |
base_name (Optional) | The name that each output file will begin with. | String |
out_las_dataset (Optional) | The new LAS dataset that references the tiled LAS files created by this tool. This is optional. | LAS Dataset |
compute_stats (Optional) | 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.
| Boolean |
las_version (Optional) | The LAS file version of each output file. The default is 1.4.
| String |
point_format (Optional) | The point record format of the output LAS files. The available options will vary based on the LAS file version specified in the point_format parameter. | Long |
compression (Optional) | Specify if the output LAS file will be compressed format or in the standard LAS format.
| String |
las_options [las_options,...] (Optional) | A list of optional modifications to the output LAS files.
| String |
tile_feature (Optional) | The polygon features that define the tile width and height to be used when tiling the lidar data. The polygons are presumed to be rectangular, and the first feature's extent is used to define the tile width and height. | Feature Layer |
naming_method (Optional) | Defines the way each output tile is named. When input features are specified in the tile_feature parameter, you can use one of its fields (text or numeric) to define the output file name. This name will be appended to the end of the text used in the base_name parameter. The following automatically generated naming conventions are supported:
| String |
file_size (Optional) | This value, which is expressed in megabytes, represents the upper limit of the uncompressed file size of an output LAS tile with uniform point distribution across its entire extent. The tool defaults to 250, and the value is used to estimate the tile width and height. This parameter is ignored when values are provided for the tile_feature or tile_width and tile_height parameters. | Double |
tile_width (Optional) | The width of each tile. If a value is specified for the tile width and height, the file_size parameter will be ignored. When input features are specified in the tile_feature parameter, the tile width will be derived from the height of the first feature, and this parameter will be ignored. | Linear Unit |
tile_height (Optional) | The height of each tile. If a value is specified for the tile width and height, the file_size parameter will be ignored. When input features are specified in the tile_feature parameter, the tile height will be derived from the height of the first feature, and this parameter will be ignored. | Linear Unit |
tile_origin (Optional) | The coordinates of the origin of the tiling grid. The default values are obtained from the lower left corner of the input LAS dataset. When input features are specified in the tile_feature parameter, the origin will be inherited from the lower left corner of the first feature, and this parameter will be ignored. | Point |
Code sample
TileLas example 1 (Python window)
The following sample demonstrates the use of this tool in the Python window.
arcpy.env.workspace = 'C:/data'
arcpy.ddd.TileLas('Denver_2', basename='2014_', out_las_dataset='Denver_2014.lasd',
las_version='1.4', point_format=6, compression='ZLAS Compression',
las_options=['Rearrange points'], naming_method='ROW_COLUMN', file_size=300)
TileLas example 2 (stand-alone script)
The following sample demonstrates the use of this tool in a stand-alone Python script.
'''****************************************************************************
Name: Tile LAS File
Description: Creates tiled LAS files form an untiled collection.
****************************************************************************'''
# Import system modules
import arcpy
import tempfile
import math
in_las = arcpy.GetParameterAsText(1) # The LAS files that need to be tiled
out_folder = arcpy.GetParameterAsText(2) # folder for LAS files
basename = arcpy.GetParameterAsText(3) # basename for output files
out_lasd = arcpy.GetParameterAsText(4) # output LAS dataset
try:
# Create temp LAS dataset to reference LAS files that will be tiled
temp_lasd = arcpy.CreateUniqueName('temp.lasd', tempfile.gettempdir())
arcpy.management.CreateLasDataset(in_las, temp_lasd)
arcpy.ddd.TileLas(temp_lasd, out_folder, basename, out_lasd, las_version=1.4,
point_format=7, file_size=300)
arcpy.management.Delete(temp_lasd)
arcpy.ddd.ClassifyLasGround(out_lasd, method='AGGRESSIVE')
arcpy.ddd.ClassifyLasBuilding(out_lasd, min_height='3 Meters', min_area='4 Meters')
arcpy.ddd.ClassifyLasByHeight(out_lasd, height_classification=[(3, 6), (4,20), (5,70)],
noise='All Noise', compute_stats='COMPUTE_STATS')
except arcpy.ExecuteError:
print(arcpy.GetMessages())
Environments
Licensing information
- ArcGIS Desktop Basic: Requires 3D Analyst
- ArcGIS Desktop Standard: Requires 3D Analyst
- ArcGIS Desktop Advanced: Requires 3D Analyst