The LIDAR_EXTRACT command allows for automatically extracting building outlines, tree points/outlines, and linear powerlines from classified Lidar point clouds. Building extraction requires classified building points, tree extraction requires classified high vegetation points, and powerline extraction requires classified powerline points. The following parameters are supported by the command:

  • FILENAME - filename or description of loaded Lidar layer(s) to extract from. This parameter can be listed more than once to specify multiple input files, like FILENAME="FILENAME_1" FILENAME="FILENAME_2".
  • GRID_BIN_SIZE - specifies how many native spacings in size to make each bin, or for building extraction this is the gating distance for the local neighborhood used in principal component analysis. For example a value of GRID_BIN_SIZE="3.0" would make each square bin/ neighborhood 3 times the calculated native spacing of the point data. The default is GRID_BIN_SIZE="0.5" which queries the data at half of the native spacing. 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".
  • TYPE - specifies what type of features to extract. If you don't provide a TYPE parameter all types will be extracted. The following values are valid:
    • ALL - extract all types
    • BUILDING - extract building/ roof outlines. Note you must already have classified building points for the building extraction to work.
    • TREE - extract tree points/ outlines. Note you must already have classified high vegetation points for the tree extraction to work.
    • POWERLINE - extract powerline features. Note you must already have classified powerline points for the line extraction to work.

Building Extraction Options


  • CREATE_BUILDING_MESH - This and/or LIDAR_CREATE_FOOTPRINTS = YES is required. This parameter can be used to cause the 3D building outlines to be created as a 3D model rather than 3D areas. Use CREATE_BUILDING_MESH=YES to enable.
  • CREATE_SIDE_WALLS - specifies whether or not side wall areas will be created extended from the roof polygon edges to the ground height. Use CREATE_SIDE_WALLS=YES to enable. If not enabled, the roof polygons will be marked to extrude to the ground when displaying in the 3D viewer.
  • CREATE_SEP_ROOF_AREAS - specifies that separate roof areas will be created where the direction and/or Z value of the roof plane significantly changes between adjacent roof cells. The LIDAR_PLANE_MAX_OFFSET and LIDAR_PLANE_MAX_ANGLE parameters control how large of an offset is allowed before breaking the roof. Use CREATE_SEP_ROOF_AREAS=YES to enable.
  • 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.
  • SIMPLIFICATION - specifies the simplification multiplier to use when simplifying the building polygons.
  • LIDAR_MIN_POINTS_IN_PLANE - Minimum number of points required (by RANSAC) to identify a planar segment.
  • LIDAR_MAX_DISTANCE_TO_PLANE - Maximum distance from a plane required (by RANSAC) to associate a point to a planar segment.
  • LIDAR_MIN_FOOTPRINT_AREA_SQM - Minimum footprint area required for extraction methods to proceed with simplified building model construction.
  • LIDAR_PSEUDOMEASUREMENTS_AT_PLANAR_INTERSECTIONS - Sharpen edges and stitch planes by adding points at planar intersections.
  • LIDAR_CREATE_FOOTPRINTS - This parameter and/or CREATE_BUILDING_MESH=YES is required. This is used to create polygons representing ground footprints of buildings.
  • LIDAR_SIMPLIFICATION_EPSILON - Line simplification parameter given in meters used in Douglas-Peucker line simplification of footprint boundaries.
  • LIDAR_CREATE_SEPERATE_ROOF_PLANES - Create simplified planes representing planar segments.
  • LIDAR_CREATE_SIDEWALLS - Add side walls to simplified building models by connecting footprints to identified planes.
  • LIDAR_CREATE_BUILDINGS_AS_MESH - Create triangular mesh for each building from building points by way of a restricted delaunay triangulation.
  • LIDAR_COLOR_VERTICES - Color vertices in building mesh by LiDAR intensity.

Tree Extraction Options

Use for TYPE=TREE.

  • CREATE_TREE_POLYS - specified that approximate tree outline polygons should be created. Add CREATE_TREE_POLYS=YES to enable.
  • LIDAR_MIN_HEIGHT - specifies the minimum height above ground (in meters) for a tree crown point to create a point at the tree crown location.
  • LIDAR_TREE_MIN_SPREAD - specifies the minimum spread/width (in meters) which is the minimum width of a tree
  • LIDAR_TREE_MAX_SPREAD - specifies the maximum spread/width (in meters) which is the maximum width of a tree

Powerline Extraction Options


  • POWERLINE_MAX_DIST_FROM_LINE - specifies the maximum distance (in meters) from the best-fit 3D line of points for a connected powerline segment that the points in a new candidate segment can be and still be connected.
  • POWERLINE_MAX_ANGLE_DELTA - specifies the maximum difference in angle (in degrees) from a straight line that the points in a new candidate segment can be and still be connected.
  • POWERLINE_MIN_LEN - specifies the minimum total length in meters that a connected powerline must be in order to be kept
  • POWERLINE_MAX_VERT_DIFF_PER_M - specifies the maximum difference in elevation allowed per meter to allow when connecting short segments to a longer continuous powerline. 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.