Classify LAS Noise (3D Analyst)

Summary

Classifies LAS points with anomalous spatial characteristics as noise.

Usage

  • Noise points in LAS returns typically have a detrimental impact on data visualization and analysis. For example, returns from high-flying birds and scattered pulses that encountered cloud cover, smog haze, water bodies, and highly reflective mirrors can distort the z-range of the points surrounding that location. Identifying such points as noise will allow them to be filtered out from the display and eliminated from the production of any derivative data, such as an elevation surface, slope, or aspect profile.

  • The Isolation method will process the LAS data in tiled 3 by 3 bins based on the region defined by the Neighborhood Width and Neighborhood Height parameters. If the number of LAS points in the analysis volume is less than the Neighborhood Point Limit parameter value, the LAS points will be treated as noise. The point limit should reflect a reasonable approximation based on the lidar point density and the number of LAS points that can be anticipated in the analysis volume.

  • If some LAS point returns have abnormally high or low z-values for the region captured by the lidar collection, consider using the Absolute Height method to define the z-value threshold of the data to quickly identify the outlier points as noise.

  • If LAS points have abnormally high or low z-values for specific regions, but those values fall within the range of valid measurements captured in the lidar collection, consider using the Relative Height method to define the z-value threshold of valid data based on an offset from the ground. To generate a ground surface, filter the LAS dataset for ground classified points, and use the LAS Dataset To Raster tool.

  • Only LAS points with class code values of 0 or 1 will be reclassified. If unclassified points are represented by some other value, consider using the Change LAS Class Codes tool to assign the unclassified points a value of 1. When noise points are being classified and either the Isolation or Absolute Height method is used, all noise points will be assigned a class code value of 7. If the Relative Height method is used, noise points that are below the Minimum Height parameter threshold will be assigned a value of 7, which represents low noise; noise points that are above the Maximum Height parameter threshold will be assigned a value of 18, which represents high noise.

  • If you are unsure about the settings to be used for determining noise points, you can export the LAS points detected as noise as a point feature while the option to edit the LAS classification code is disabled. If the output points reflect the expected results, you can reclassify the LAS points using those features through the Locate LAS Points By Proximity tool.

  • The isolation method is a performance intensive operation that runs faster with larger bin sizes. Specify the largest possible bin size based on the nature and distribution of the data for best performance.

Parameters

LabelExplanationData Type
Input LAS Dataset

The LAS dataset that will be processed.

LAS Dataset Layer
Method
(Optional)

Specifies the noise detection method that will be used.

  • IsolationThe spatial proximity of LAS points will be analyzed in tiled volumes to determine noise measurements along with height-based noise detection. This is the default.
  • Relative Height from GroundAll points below the specified minimum height from the ground surface and above the maximum height from the ground surface will be identified as noise.
  • Absolute HeightAll points below the specified minimum height and above the maximum height in relation to mean sea level will be identified as noise.
String
Edit Classification
(Optional)

Specifies whether LAS points that are identified as noise will be reclassified.

  • Checked—Noise points will be reclassified. This is the default.
  • Unchecked—Noise points will not be reclassified.
Boolean
Assign Withheld Flag
(Optional)

Specifies whether the withheld classification flag will be assigned to noise points. This parameter is enabled when the Edit Classification parameter is checked.

  • Checked—The withheld classification flag will be assigned to noise points.
  • Unchecked—The withheld classification flag will not be assigned to noise points. 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
Ground Raster Surface
(Optional)

The ground raster surface that will be used to compute relative height values for each point. This parameter is required when the Method parameter is set to Relative Height from Ground.

Raster Layer
Minimum Height
(Optional)

The height that will define the lowest z-value threshold for identifying noise points. Any point that is lower than the value provided will be classified as noise. If a ground surface is specified, this threshold will be based on an offset from the ground so that a value of -3 feet means any points that are 3 feet below the ground surface will be classified as noise.

Linear Unit
Maximum Height
(Optional)

The height that will define the highest z-value threshold for identifying noise points. Any point that is higher than the value provided will be classified as noise. If a ground surface is provided, this threshold will be based on an offset from the ground so that a value of 250 meters means any points that are higher than 250 meters above the ground surface will be classified as noise.

Linear Unit
Neighborhood Point Limit
(Optional)

The maximum number of points in the analysis volume that can be qualified as noise when using the Isolation method. If the analysis volume contains any number of LAS points that are equal to or less than this value, those points will be classified as noise.

Long
Neighborhood Width
(Optional)

The size of each dimension in the x,y space of the analysis volume when using the Isolation method.

Linear Unit
Neighborhood Height
(Optional)

The height of the analysis volume when using the Isolation method.

Linear Unit
Processing Extent
(Optional)

The extent of the data that will be evaluated.

  • Current Display Extent Map View—The extent will be based on the active map or scene. This option is only available when there is an active map.
  • Extent of a Layer Layer—The extent will be based on an active map layer. Use the drop-down list to choose an available layer or use the Extent of data in all layers option to get the combined extent of all active map layers, excluding the basemap. This option is only available when there is an active map with layers.
  • Browse Browse—The extent will be based on an existing dataset.
  • Intersection of Inputs Intersect—The extent will be based on the minimum or intersecting extent of all inputs. If no inputs overlap, a null extent with all zeros will result.
  • Union of Inputs Union—The extent will be based on the maximum or combined extent of all inputs.
  • Reset Extent Reset—The extent will be reset to the default value.
  • Manually entered coordinates—The coordinates must be numeric values and in the active map's coordinate system.

    The map may be using different display units

Extent
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 file, including those outside the area of interest, will be processed.
Boolean
Output Noise Points
(Optional)

The output point features that represent the LAS points identified as noise.

Feature Class
Update pyramid
(Optional)

Specifies whether the LAS dataset pyramid will be updated after the class codes are modified.

  • Checked—The LAS dataset pyramid will be updated. This is the default.
  • Unchecked—The LAS dataset pyramid will not be updated.
Boolean

Derived Output

LabelExplanationData Type
Output LAS Dataset

The LAS dataset to be modified.

LAS Dataset Layer

arcpy.ddd.ClassifyLasNoise(in_las_dataset, {method}, {edit_las}, {withheld}, {compute_stats}, {ground}, {low_z}, {high_z}, {max_neighbors}, {step_width}, {step_height}, {extent}, {process_entire_files}, {out_feature_class}, {update_pyramid})
NameExplanationData Type
in_las_dataset

The LAS dataset that will be processed.

LAS Dataset Layer
method
(Optional)

Specifies the noise detection method that will be used.

  • ISOLATIONThe spatial proximity of LAS points will be analyzed in tiled volumes to determine noise measurements along with height-based noise detection. This is the default.
  • RELATIVE_HEIGHTAll points below the specified minimum height from the ground surface and above the maximum height from the ground surface will be identified as noise.
  • ABSOLUTE_HEIGHTAll points below the specified minimum height and above the maximum height in relation to mean sea level will be identified as noise.
String
edit_las
(Optional)

Specifies whether LAS points that are identified as noise will be reclassified.

  • CLASSIFYNoise points will be reclassified. This is the default.
  • NO_CLASSIFYNoise points will not be reclassified.
Boolean
withheld
(Optional)

Specifies whether the withheld classification flag will be assigned to noise points. This parameter is enabled when the edit_las parameter is set to CLASSIFY.

  • WITHHELDThe withheld classification flag will be assigned to noise points.
  • NO_WITHHELDThe withheld classification flag will not be assigned to noise points. 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
ground
(Optional)

The ground raster surface that will be used to compute relative height values for each point. This parameter is required when the method parameter is set to RELATIVE_HEIGHT.

Raster Layer
low_z
(Optional)

The height that will define the lowest z-value threshold for identifying noise points. Any point that is lower than the value provided will be classified as noise. If a ground surface is specified, this threshold will be based on an offset from the ground so that a value of -3 feet means any points that are 3 feet below the ground surface will be classified as noise.

Linear Unit
high_z
(Optional)

The height that will define the highest z-value threshold for identifying noise points. Any point that is higher than the value provided will be classified as noise. If a ground surface is provided, this threshold will be based on an offset from the ground so that a value of 250 meters means any points that are higher than 250 meters above the ground surface will be classified as noise.

Linear Unit
max_neighbors
(Optional)

The maximum number of points in the analysis volume that can be qualified as noise when using the Isolation method. If the analysis volume contains any number of LAS points that are equal to or less than this value, those points will be classified as noise.

Long
step_width
(Optional)

The size of each dimension in the x,y space of the analysis volume when using the Isolation method.

Linear Unit
step_height
(Optional)

The height of the analysis volume when using the Isolation method.

Linear Unit
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
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 file, including those outside the area of interest, will be processed.
Boolean
out_feature_class
(Optional)

The output point features that represent the LAS points identified as noise.

Feature Class
update_pyramid
(Optional)

Specifies whether the LAS dataset pyramid will be updated after the class codes are modified.

  • UPDATE_PYRAMIDThe LAS dataset pyramid will be updated. This is the default.
  • NO_UPDATE_PYRAMIDThe LAS dataset pyramid will not be updated.
Boolean

Derived Output

NameExplanationData Type
out_las_dataset

The LAS dataset to be modified.

LAS Dataset Layer

Code sample

ClassifyLasNoise example 1 (Python window)

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

arcpy.env.workspace = 'C:/data'

arcpy.ddd.ClassifyLasNoise('Denver_2.lasd', "ABSOLUTE_HEIGHT", 
                           edit_las='CLASSIFY', withheld='WITHHELD', 
                           high_z='450 Feet')
ClassifyLasNoise example 2 (stand-alone script)

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

'''****************************************************************************
       Name: Classify Lidar & Extract Building Footprints
Description: Extract footprint from lidar points classified as buildings, 
             regularize its geometry, and calculate the building height.

****************************************************************************'''
import arcpy

lasd = arcpy.GetParameterAsText(0)
dem = arcpy.GetParameterAsText(1)
footprint = arcpy.GetParameterAsText(2)

try:
    desc = arcpy.Describe(lasd)
    if desc.spatialReference.linearUnitName in ['Foot_US', 'Foot']:
        unit = 'Feet'
    else:
        unit = 'Meters'
    ptSpacing = desc.pointSpacing * 2.25
    sampling = '{0} {1}'.format(ptSpacing, unit)
    # Classify overlap points
    arcpy.ddd.ClassifyLASOverlap(lasd, sampling)
    # Classify ground points
    arcpy.ddd.ClassifyLasGround(lasd)
    # Filter for ground points
    arcpy.management.MakeLasDatasetLayer(lasd, 'ground', class_code=[2])
    # Generate DEM
    arcpy.conversion.LasDatasetToRaster('ground', dem, 'ELEVATION', 
                                        'BINNING NEAREST NATURAL_NEIGHBOR', 
                                        sampling_type='CELLSIZE', 
                                        sampling_value=desc.pointSpacing)
    # Classify noise points
    arcpy.ddd.ClassifyLasNoise(lasd, method='ISOLATION', edit_las='CLASSIFY', 
                               withheld='WITHHELD', ground=dem, 
                               low_z='-2 feet', high_z='300 feet', 
                               max_neighbors=ptSpacing, step_width=ptSpacing, 
                               step_height='10 feet')
    # Classify buildings
    arcpy.ddd.ClassifyLasBuilding(lasd, '7.5 feet', '80 Square Feet')
    #Classify vegetation
    arcpy.ddd.ClassifyLasByHeight(lasd, 'GROUND', [8, 20, 55], 
                                  compute_stats='COMPUTE_STATS')
    # Filter LAS dataset for building points
    lasd_layer = 'building points'
    arcpy.management.MakeLasDatasetLayer(lasd, lasd_layer, class_code=[6])
    # Export raster from lidar using only building points
    temp_raster = 'in_memory/bldg_raster'
    arcpy.management.LasPointStatsAsRaster(lasd_layer, temp_raster,
                                           'PREDOMINANT_CLASS', 'CELLSIZE', 2.5)
    # Convert building raster to polygon
    temp_footprint = 'in_memory/footprint'
    arcpy.conversion.RasterToPolygon(temp_raster, temp_footprint)
    # Regularize building footprints
    arcpy.ddd.RegularizeBuildingFootprint(temp_footprint, footprint, 
                                          method='RIGHT_ANGLES')

except arcpy.ExecuteError:
    print(arcpy.GetMessages())

Licensing information

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

Related topics