Point cloud processing – 2D “speed” Meshing.
Point cloud processing in Surpac has been around since Surpac 6.8 and is continuing to evolve functionality (Current version is Surpac 2019). We are now starting to see some very large clouds being processed (4GB was the latest – 155 million point .las file), and whilst Surpac has no trouble displaying such a cloud (Reasonable hardware required – My laptop with 2GB graphics card and 32GB RAM does the job nicely) it can sometimes struggle to create a DTM of it.
The first question that needs to be asked is, are all 155 million points necessary? In this example, the area covered was 380,000m2 which works out to be roughly 400 points per square meter.
The second question that needs to be asked is, will I be able to do anything with this file even if I can mesh it? Even if this was possible (and given the right hardware it would be), the resulting DTM would be enormous and performing volume calculations or any further functions would be impossible.
With this in mind, I have created a workflow which meshes point clouds much faster. All that is required is a small amount of prep work to create a series of polygons that cover the area you want to mesh. (We have macros to assist if required.)
Point cloud with overlaid polygons
Step 1. Clip the point cloud to leave only the area to be meshed.
- If this is possible, it is always recommended. There is no point meshing areas that aren’t going to be used in downstream processing.
- Use Surfaces -> Mesh Tools -> Point cloud edit to clip the point cloud by an existing boundary if you have one. Otherwise select the option to “digitize a polygon”
Step 2. Create the meshing polygons similar to what is shown above. (10 polygons have been created)
- The amount of polygons you create will depend on data size and point density. Smaller polygons will process faster so around 30 polygons for 30 – 50 million points is about right.
Step 3. Download and run the macros
- Run 1_quick_mesh.tcl and select your polygon file as well as your point cloud file. Use the .dspc format if possible otherwise .xyz or .asc will work fine.
- Enter the start polygon number and the end polygon number for meshing (All polygons in between must exist)
- Enter the cell size. The smaller the cell size, the longer it will take to process, so choose a size that is fit for purpose.
- Attempt to clean. Use this option if you want to remove triangles that exceed a certain dip angle. (Off by default)
This can be an effective way of cleaning rogue points in a cloud, however most cleaning of point clouds requires an iterative approach and should be looked at beforehand.
NOTE: Running this macro will create a new folder in your current work directory called “pc_results” This is where all of the separate point cloud meshes will be saved when 1_quick_mesh.tcl is run. Also note, if you have chosen the “Attempt to clean” option, some of the meshes may not have triangles in the dtm file. This is normal and is sorted when running the next macro.
Step 4. Run the second macro
- Run 2_combine_string_meshes.tcl
This will amalgamate all of the points from all the meshes in the “pc_results” folder and then create a file called “combined.dtm”
Drag this file into graphics to see the final result. This file can then be used for further processing.
Using this method I have been able to mesh point clouds that would previously not work due to their size. It also drastically reduces the time taken to produce a mesh.