The LIDAR_COMPARE command supports the functionality of the Compare Point Cloud, Lidar QC tool and the Find Duplicate Lidar tools. You can identify Lidar points that are different between 2 sets of point clouds or compare the elevations from loaded Lidar point clouds to loaded 3D control points. You can also adjust the Lidar points to match the control points. This command also supports deletion of duplicate points. The following parameters are supported by the command:

  • FILENAME - filename or description of loaded layer(s) of Lidar point clouds to compare to control point(s). This parameter can be listed more than once to specify multiple input files, like FILENAME="FILENAME_1" FILENAME="FILENAME_2". If not specified all loaded Lidar clouds will be used.
  • FILENAME2 - if provided, a comparison between the two sets of point clouds is done. The FILENAME2 parameter specifies the filename or description of loaded layer(s) of Lidar point clouds to compare to the layer(s) specified with the FILENAME parameter. This parameter can be listed more than once to specify multiple input files, like FILENAME2="FILENAME_1" FILENAME2="FILENAME_2".

  • POINT_FILENAME - filename or description of loaded layer(s) with the 3D control point features. If not specified all loaded 3D point features will be used.
  • REPORT_FILENAME - if specified, the name of the text file (CSV format) to save a report to with each control point listed along with information about the elevation difference at the point as well as the overall RMSE in meters
  • LAYER_DESC - specifies the description to use for the layer created when comparing point clouds. The new layer will contain the points that are different.

  • MAX_SEARCH_BIN_MULT - If comparing point clouds, this specifies the maximum distance a point in the FILENAME2 cloud(s) can be from a point in the FILENAME cloud(s) before it is considered a new point. If comparing to control points, this specifies the maximum distance from each control point to look for Lidar to get the Lidar point cloud height. This is a multiple of the native point spacing of the cloud. A negative value indicates the distance in meters (like MAX_SEARCH_BIN_MULT=-0.5 for a 0.5m search distance).

  • MAX_POINT_COUNT - specifies the maximum number of points to consider in the point cloud for getting the height at each location. A value of 0 means that only the search distance is considered. Otherwise, to just consider the 3 nearest points within the search radius, use MAX_POINT_COUNT=3.

  • FIT_POINTS - if FIT_POINTS=YES is provided, the elevation of the Lidar points will be adjusted to match the control point elevations.
  • DELETE_ORIGINALS - when set with the DELETE_DUPLICATES option also enabled, any points found in multiple input point clouds will be removed, leaving just the points that are different between the two point clouds.

  • DELETE_DUPLICATES - if set, Lidar points with the same 3D location (and optionally equal additional attributes specified with the DUPLICATE_ATTR parameter) are marked as deleted

  • DUPLICATE_ATTR - specifies the name of a Lidar attribute that must match to be considered a duplicate. Multiple instances of the parameter can be provided. Without this parameter, DELETE_DUPLICATES deletes all duplicates with the same XYZ values. The following values are recognized:

    • CLASS - classification code
    • GPS_TIME - timestamp
    • INTENSITY - intensity
    • RETURN_NUM - return number
    • RETURN_CNT - number of returns
    • SOURCE_ID - point source ID


This script will compare and adjust loaded lidar to loaded vector point features, and generate a comparison report in the same folder as the script:


An example script to delete duplicates with the same XYZ location, intensity, and GPS time looks like:


Example script that compares two point clouds to find changes and saves them to a new changed points layer

LIDAR_COMPARE FILENAME="Augusta Original" FILENAME2="Augusta Modified" MAX_DIST="0.1" LAYER_DESC="Changed Points"