How does the "Fit LiDAR to Control Points" algorithm work?
1. non-rigid, with translation - all the lidar points or shifted globally, then the LiDAR points around the control points are shifted locally and all LiDAR points in between are interpolated.
2. non-rigid, no translation - there is no shift globally, the LiDAR points around the control points are shifted locally and there is NO interpolation.
3. Rigid, with translation - all the lidar points or shifted globally, there is are no local adjustments made around the control points.
Global Mapper 18.2 + LiDAR module
Windows 10
Intel Core i7-5960X @ 3.00Ghz
32.0 GB
Answers
-
Why is there no answer to this question? Seems critical.
-
So I've done some testing here, using the following process:
I created a 10km wide rectangle at 0m elevation, then created a Elevation Grid. I then exported this surface as a LAZ using 10m post spacing to create a perfectly flat point cloud at zero elevation and containg 1.1 million points. I then created (using CAD) 22 control points distributed as a rectangular grid across this surface, these are synthetic control points:
I then began a process of altered the elevation of a single control point, then performed a "Fit to Control" function, and seeing what effect it had on the rest of the control points.
In the case that you have just one control point, the entire point cloud will raise/lower by the vertical difference between the cloud and the control. In this case it is a simple, rigid, vertical translation.
However, if you have two control points with a great vertical disparity, something more interesting occurs. In this case, I change the vertical of point 18 to +100m and 22 to -100m and constrained only those two points. The control fit results are below, it is nearly an even gradient, though the edges do flare out, indicating some interpolation. Note, it does NOT average the control point differences and apply a single vertical shift:
My last check was to apply a "taco shell" to the cloud, putting points 11 &14 at -100, while 7 & 9 were at +100. I wanted to see what would happen at points 19 & 23. I was most concerned that it would warp the data even outside of the control, creating a "tilted plane" where the data outside of the control was shifted WAY too much. It does not do that however, instead giving some weighting to the points original elevation:
Interesting results. I'm not sure what the technical name is for what it is doing - seems to depend on the scenario, but it seems reasonable to me. I've shared the testing data, it can be downloaded here if you want to do your own tests:
https://www.dropbox.com/s/2u3chpsm0rv12am/Global_mapper_control_point_testing.zip?dl=0
-
We have been asking this as well. There is another un-answered forum question out there as well: https://www.globalmapperforum.com/discussion/14218/fit-lidar-data-to-control-points
Their answer to me in an email was that:
"when using the Compare Lidar to Control Points to fit 3D points to lidar, the tool uses an inverse weighted distance (IDW) algorithm to calculate an interpolated elevation from the nearby Lidar returns surrounding the control point. "
-
I am trying to adjust some lidar to control but I cant seem to get the data to move at all. It will give you a rmse before you run the function. But I have been trying to run the "best fit plane" over and over but nothing adjusts.
-
I'm just seeing this very old thread now.
In Global Mapper 26.0 we added additional options to the Lidar fit to control points. What was done prior to 26.0 was just a Piecewise Affine transformation, which calculated a TIN of offsets at the control points and interpolated inside each triangle. The transformation tapered to 0 outside of the control points.
In GM 26.0, we added additional options for a Fixed Z Shift and a Best Fit Plane offset.
If you have a test case where the Best Fit Plane isn't adjusting anything I'd be interested to see it (or email to geohelp@bluemarblegeo.com). I just did a quick test and confirmed it is working for me.
Thanks,
Mike
Global Mapper Guru
geohelp@bluemarblegeo.com
-
Hey Mike, I was able to get it to work. There was something wrong with the control.
I do something else that I cant figure out though. Im trying to merge two point clouds together. They are pretty close but there are some buildings and other monuments that arent quite lining up. Ive tried to use the ICP method to fit the point clouds but for some reason it takes the point cloud I want to move and shifts it further away. What would cause this? Is there a better way to align the point clouds? I know you can do this manually somehow... I do it all the time in Cyclone when I use our terrestrial scanner.
-
For fitting the point clouds together, the ICP method will try and minimize the overall delta between the clouds, but might end up making some places further apart. It does better with simple Z shifts than a full 3D offset.
You might try using the Filter option to only match the building points (if they are classified) and see if that provides a better shift.
Or, you can right-click on one of the loaded Lidar layers in the Control Center and select to Rectify the layer, then you can do a 3D point-to-point transformation between that cloud and the other loaded cloud by selecting 3D control points.
Thanks,
Mike
Global Mapper Guru
geohelp@bluemarblergeo.com
-
Im going to try the 3D point to point transformation -I can do this in Lidar360 but I have this project loaded into GM. I see how to perform the 2D click on common points tool, how do I initiate the 3d?
-
There is an 'Ignore Z Values' checkbox on the rectify dialog that controls whether a 2D or 3D transform is done. Make sure that is unchecked to get the elevation values.
Also not that if you use the 'Fit Point Clouds' option, choosing to manually specify the control points rather than using ICP will also show the same dialog.
-
Thanks for your help Mike! How would I go about aligning these point clouds? Seems like there could be a way to rotate the point cloud in 3D and pick common points that need to match. Or is it better to perform a calculated shift? The thing is that one side of this point cloud hits our control nicely, we just need to slightly rotate this other side. What is the best way to do that in GM?
-
You can't currently rotate the rectify dialog views to select in 3D, so you are limited to top-down 2D selection.
If you can find some obviously matching points in the 2 clouds in top-down view, when you click them the XYZ value will automatically be filled in from the nearest point to your click location. If you can find around 5 or more of those, then the resulting best-fit shift from the 3D control point pairs should include rotate, scale, and offset to make them match as well as possible.
-
Thank you Mike!
Categories
- 12.8K All Categories
- 5.7K Features Discussion
- 346 Downloading Imagery
- 1.3K Elevation Data
- 385 Georeferencing Imagery Discussion
- 639 GM Script Language
- 54 User Scripts
- 115 GPS Features
- 419 Projection Questions
- 829 Raster Data
- 1.4K Vector Data
- 6.6K Support
- 179 Announcement and News
- 923 Bug Report
- 560 SDK
- 1.2K Suggestion Box
- 3.7K Technical Support
- 574 Other Discussion
- 132 GIS Data Sources
- 27 Global Mapper Showcase
- 241 How I use Global Mapper
- 108 Global Mapper Forum Website