Global Mapper v26.0

Point to Point Change Detection

Hello everyone.

Does anyone know if there is a way to do a signed direct point to point comparison between two clouds using elevation differences? I am aware that there is a way to do a signed difference between two GMG's. Here is an example of what I have done with two GMG's using the combine/compare terrain layers tool:

The only issue I have is that GMG comparison is supposedly less accurate than direct point to point comparison. I know Cloud Compare software has this feature and was hoping there is a way to do this in Global Mapper.


Here is my workflow thus far:

1.Run the MCC classification on ground points for both clouds

2.Run the compare point clouds tool on the reclassified clouds to calculate mean offset distance between ground points of both datasets. I set the minimum distance between clouds to 1m to capture most points between two clouds (with a completeness of 99% in the histogram). This created a new attribute showing difference in elevation and erosion is clearly shown between the two clouds. Here's an example below showing stream channel erosion:

This is a good result except the only issue I am having is that these values represent absolute change and not a signed difference between elevations to separate deposition from erosion (negative and positive change in elevation).


3.Fit the two point clouds together through the iterative closest point (ICP) algorithm. I fit all points below 0.30m to fix offset (the majority of green points shown in the image above) and ignored points above 0.30m to preserve areas that have deformation. The point cloud fit successfully and had a lower average distance between points.

4.Rerun the compare point clouds tool and set the minimum distance between cloud points to 0.3m. This created a new layer showing areas of change in distance higher than 0.3m. The only problem is that the distance attribute column now has no values in the newly created layer..


New point cloud representing distances over 0.30m

Old point cloud that includes points less than 0.30m in difference and higher values greyed out


Essentially, I would like a point cloud with signed elevation differences both negative and positive over 0.30m represented and all point below that either greyed out or not shown. Is there a way to do this on a point by point basis? or is using the signed GMG difference between the two fitted clouds sufficiently accurate?



Thanks for any help

Answers

  • bmg_mike
    bmg_mike Global Mapper Guru Moderator, Trusted User

    I would think that creating a high resolution elevation grid from the point clouds, then doing a signed subtraction would as good as the direction comparison between clouds. If you create the grid around 1 point spacing in resolution, you are pretty much capturing the full resolution of the clouds, with small gaps due to uneven distribution filled so you don't miss points.

    Thanks,

    Mike

    Global Mapper Guru

  • Thank you for the answer Mike, I will try doing a GMG for both reference and compared clouds with data gaps filled to see the results. A couple of questions:

    1) My 2022 dataset has a lower point density than the 2023 cloud. Would I have to downscale my higher resolution cloud to match the lower density, or simply process them both at their highest respective resolution GMG? (ie. 1 point spacing).

    2) Which grid method should I use if I have all my ground points classified already? Binning minimum or Triangulation?

    3) If I want to set my gridding method as the highest resolution possible, would the "Grid Spacing - Automatic: Spacing Multiple of Point Spacing" be set to 1?

    Thanks

  • bmg_mike
    bmg_mike Global Mapper Guru Moderator, Trusted User

    You don't need to match the spacing of the 2 elevation grids. They will use bilinear interpolation (by default) to sample at the appropriate location in each grid.

    I would definitely use Binning minimum (or average) for gridding. It is much faster and will avoid weird behavior when points are stacked near each other.

    Using the 'Automatic Spacing Multiple of Point Spacing' of 1 should give you a grid at the calculated 'native' spacing of the point cloud. If your cloud has a lot of variance in density, you could even use something smaller, like 0.5 point spacing, to capture more.

    Thanks,

    Mike

    Global Mapper Guru