LIDAR_CLASSIFY

The LIDAR_CLASSIFY command allows for automatically identifying and classifying ground-shot or building/high vegetation points from Lidar point clouds. The following parameters are supported by the command:

  • FILENAME - filename or description of loaded layer(s) to classify Lidar points in. This parameter can be listed more than once to specify multiple input files, like FILENAME="FILENAME_1" FILENAME="FILENAME_2".
  • TYPE - specifies what type(s) of points to classify. If you don't provide a TYPE parameter only ground points will be classified. To classify multiple types, provide a comma-separated list, like TYPE="GROUND,NONGROUND,POWERLINE". The following values are valid:
    • GROUND - classify ground shot points.
    • NONGROUND - classify building/high vegetation points. Note you must already have classified ground points for the building/tree classification to work properly.
    • POLE - classify pole points.
    • POWERLINE - classify powerline vegetation points. Note you must already have classified ground points for the powerline classification to work properly.
    • NOISE - classify high and low noise points.
    • HIGH_NOISE - classify high noise points.
    • LOW_NOISE - classify low noise points.

Ground Point Classification Options

Use for TYPE=GROUND

  • GRID_BIN_SIZE - specifies how many native spacings in size to make each bin initially for the algorithm. For example a value of GRID_BIN_SIZE="3.0" would make each square bin 3 times the calculated native spacing of the point data. The default is GRID_BIN_SIZE="3.0" for classifying ground points and GRID_BIN_SIZE="1.0" for non-ground (building/tree) points. If you want to specify a spacing in meters rather than as a multiple of the native spacing for the point cloud, use a negative value (-). For example, to get a spacing of 0.6 meters, use GRID_BIN_SIZE="-0.6".
  • LIDAR_RESET_GROUND - specifies that any points that are already marked as ground should be reset to unclassified to start the process. Add LIDAR_RESET_GROUND=YES to reset the points.
  • LIDAR_CURVATURE - specifies the minimum height differential (curvature) in meters for the first pass of the MCC algorithm. The default is LIDAR_CURVATURE="0.3".
  • LIDAR_MAX_HEIGHT_DELTA - specifies the maximum height difference to consider as still possibly ground when removing points that are likely non-ground (i.e. buildings or vegetation) using a morphological filter before running the MCC algorithm to find ground points. You can provide a value of 0 to skip the morphological filter altogether and just run the MCC algorithm.
  • LIDAR_SLOPE - specifies the slope in degrees that is close to the expected steepest slope in the region being classified. This is used by the morphological filter which removes likely non-ground points before running the MCC algorithm to find ground points.

Non-Ground (Building/Tree) Point Classification Options

use for TYPE=NONGROUND.

  • GRID_BIN_SIZE - specifies how many native spacings in size to make each bin initially for the algorithm. For example a value of GRID_BIN_SIZE="3.0" would make each square bin 3 times the calculated native spacing of the point data. The default is GRID_BIN_SIZE="3.0" for classifying ground points and GRID_BIN_SIZE="1.0" for non-ground (building/tree) points. If you want to specify a spacing in meters rather than as a multiple of the native spacing for the point cloud, use a negative value (-). For example, to get a spacing of 0.6 meters, use GRID_BIN_SIZE="-0.6".
  • LIDAR_RESET_NON_GROUND - specifies that any points that are already marked as one of the types being classified should be reset to unclassified at the start of the operation. Add LIDAR_RESET_NONGROUND=YES to reset the points.
  • LIDAR_MIN_HEIGHT - specifies the minimum height above ground that a point has to be in order to consider it as a possible building or high vegetation point.
  • LIDAR_PLANE_MAX_OFFSET - specifies the maximum RMSE (root mean square error) in meters from a best-fit local plane that the points in a small region all have to be within in order to consider the region a potential planar (building) region. The default is LIDAR_PLANE_MAX_OFFSET=0.08 (8 cm). If you have lower resolution data you might need to bump this up a bit. A good value should be at least a couple of times the absolute error in elevation for the data set.
  • LIDAR_PLANE_MAX_ANGLE - specifies the maximum angle (in degrees) between adjacent best-fit planes such that they can still be considered part of the same plane when identifying flat building surfaces.
  • LIDAR_TREE_MAX_OFFSET - specifies the minimum RMSE (root mean square error) in meters from a best-fit local plane that the points in a small region all have to be within in order to consider the region a potential vegetative region. The default is LIDAR_TREE_MAX_OFFSET=0.15 (15 cm). If you have lower resolution data you might need to bump this up a bit. This value must be larger than the LIDAR_PLANE_MAX_OFFSET value.

Powerline Point Classification Options

use for TYPE=POWERLINE.

  • POWERLINE_BIN_SIZE - specifies the size of each bin (meters per edge) when evaluating points to see if they are clustered as needed for the powerline classification algorithm. Typically you will leave this at the default setting of 1 meter bins (i.e. POWERLINE_BIN_SIZE="1.0"). You might use slightly larger bins for data that is lower density (around 20 points / sq m), up to 2 meter bins.
  • LIDAR_RESET_NONGROUND - specifies that any points that are classified as a powerline-related type will be reset to unclassified at the start of the operation and that other already classified non-ground points will be considered as possible powerlines. Add LIDAR_RESET_NONGROUND=YES to reset the points.
  • LIDAR_MIN_POWERLINE_HEIGHT - specifies the minimum height above ground (in meters) that a point has to be in order to consider it as a possible powerline point.
  • POWERLINE_MAX_DIST_FROM_LINE - specifies the maximum distance (in meters) from the best-fit 3D line of points with similar elevations in a bin that any points can be and still be considered powerlines.
  • POWERLINE_MAX_VERT_DIFF_PER_M - specifies the maximum difference in elevation allowed per meter to consider points as possibly part of the same powerline segment. The default value is 0.5m, which allows for a change in elevation of 0.5m over a 1m distance between points. You might specify a slightly larger value if your data is noisy.

Pole Point Classification

  • POLE_SMOOTH_COUNT - how many times to smooth data.

  • POLE_MIN_NEIGHBOR_DIS - how far away to look for neighbor points.

  • POLE_MIN_LEN - how tall a potential point needs to be for it to be classified.

  • POLE_MIN_COUNT - how many points a potential pole needs to have for it to be classified.

  • POLE_MIN_THRESHOLD - percentage something is pole-like.

  • POLE_MAX_EXTENT - how far a potential pole can extend horizontally and still be classified as a pole.

Noise Point Classification Options

use for TYPE=NOISE.

  • NOISE_BIN_SIZE - specifies how many native spacings in size to make each bin initially for the noise classification algorithm. The noise classification algorithm identifies points that are far outside the normal range in a local area of the point cloud. This value will typically be large, like NOISE_BIN_SIZE=128, to consider local areas that are 128 times the nominal point spacing in each direction.
  • LIDAR_RESET_NOISE - specifies that any points that are already marked as noise should be reset to unclassified to start the process. Add LIDAR_RESET_NOISE=YES to reset the points.
  • LIDAR_RESET_CLASSIFIED - controls whether or not points that are already classified can be identified and marked as noise points. Add LIDAR_RESET_UNCLASSIFIED=NO to only check unclassified points for noise.
  • NOISE_STD_DEV - specifies how many standard deviations above or below the mean for an area that a point elevation needs to be in order to be considered noise. Default is NOISE_STD_DEV=3.0.
  • LIDAR_ELEV_RANGE - specifies that any points with elevations outside of a specified range should be marked as high or low noise. To specify a range of acceptable values in meters, specify the minimum allowed elevation followed by a comma and the maximum allowed elevation. For example, if you want to mark everything outside the range 50m - 150m as noise, you could add LIDAR_ELEV_RANGE="50,150".
  • LIDAR_HEIGHT_RANGE - specifies that any points with height above ground outside of a specified range should be marked as high or low noise. To specify a range of acceptable values in meters, specify the minimum allowed height followed by a comma and the maximum allowed height. For example, if you want to mark everything more than 2 meters below the ground surface as low noise and everything more than 500m above the ground surface as high noise, use LIDAR_HEIGHT_RANGE="-2,500". The default value is LIDAR_HEIGHT_RANGE="-2,200".
  • CHANGE_CLASS - specifies that any points that are identified as noise should have their classification changed. This defaults to on, so add CHANGE_CLASS=NO to disable.
  • MARK_WITHHELD - specifies that any points that are identified as noise should be marked as withheld. Use MARK_WITHHELD=YES to enable this behavior. By default this will be the opposite of the CHANGE_CLASS value.
  • DELETE_FEATURES - specifies that any points that are identified as noise should be marked as deleted. This defaults to the same as the MARK_WITHHELD value. Explicitly add DELETE_FEATURES=YES to always mark noise as deleted or DELETE_FEATURES=NO to never mark as deleted.