LiDAR data continues to be more and more prominent in nearly every aspect of geoscience. Whether your job duties include performing construction site evaluation, mapping watersheds in hydrology, or performing archeological impact assessments. Being able to understand and utilize LiDAR data is an advantage in any field.
With this ever-growing relevance it is imperative that Golden Software and its end-users know some tricks of the trade to create the best possible visualization output from LiDAR data. Surfer has simple workflows to create Point Cloud Maps, but what can you do before and after that point cloud is generated to create the most visually appealing map possible?
This article will explore 2 workflows in Surfer that can help anyone minimize contour noise when generating maps from LAS and LAZ LiDAR data files.
First, what causes LiDAR noise? LiDAR data is collected by drones or scanners. When there are small differences in elevation between closely spaced points in the scanned area, the resulting output file can contain the visual phenomenon that is known as "LiDAR Noise"
Accordingly, it is not uncommon when creating Contours from LiDAR data collected in areas matching that description to see that noise present itself.
The LAZ files we will use to demonstrate how to reduce this noise are 3 LiDAR tiles downloaded from the USGS Topographic Map Resource. The data was collected in Mount Rainier National Park, near the base of Mount Rainier where several creeks feed into the Muddy Fork Cowlitz River.
These LAZ files are dense, all 3 files combine to have more than 28.2 million data points. Additionally, the area has elevation differences occurring in a close proximity. Due to these two factors, if we create a point cloud using the default options, then grid that point cloud using the default gridding options; the contours that are generated have some noticeable noisy areas. This noise is highlighted in red below.
Workflow 1: Apply Grid Filters to a Point Cloud
One method to reduce this contour noise is to utilize Surfer's Grid Filters once your Point Cloud layer has been converted to a grid.
Once a Point Cloud layer has been created Surfer offers a quick and easy tool to generate a grid from the point cloud. From the Point Cloud tool bar just select Features | Create Grid
This command creates a grid file based on the already existing point cloud. As soon as that point cloud has been converted to a grid, we can now apply Surfer's Grid Filter features to try and smooth some of the noise out.
To apply a Grid Filter to an existing grid you can select Grids | Edit | Filter. The Filter command applies methods of digital image analysis to grids. This includes a broad suite of smoothing (low-pass) filters, as well as contrast enhancement filters, edge enhancement filters, edge detection filters and general high-pass filters.
In the Grid Filter Dialog we can notice there are two filter types: Linear Convolution Filters and Nonlinear Filters. A linear convolution low-pass filter removes the high frequency noise with the resulting output being a smoother grid. For the purpose of reducing contour noise, a linear convolution low-pass filter works perfectly. Each low-pass filter option uses the same base equation. The factors that change between each option are the size and shape of the filter neighborhood and the specific weights used.
To determine which filter created the best visual output we can apply the old-fashioned trial and error method. Testing each low-pass filter option by creating a corresponding new grid. By using an eye test comparison the 9-node Averaging (3x3) filter eventually generated the cleanest contours.
After applying the 9-node Averaging (3x3) filter there is still a bit of noise that could be further reduced. To address this, we can use Surfer's Spline Smooth command. The Spline Smooth command uses cubic spline interpolation to compute new grid nodes. The interpolation simulates a drafting technique where a flexible strip (a spline) is used to draw a smooth curve between data points. To open the Spline Smooth dialog click Grids | Edit | Spline Smooth.
Within the dialog you can choose either the number of nodes you wish to insert between each row and column, or to recalculate the grid to an exact size specification. For this grid I chose to insert 4 nodes between the rows and columns which will be applied to the newly created filtered grid from above.
A comparison of the original contour map with noise present to the filtered and smoothed one with noise reduced is pictured in the slider below.
A strength of Surfer is its wide range of supported file formats. This strength extends to gridding as there is a laundry list of supported import data types to create a grid from. Included in the list are LAS and LAZ files, meaning Surfer has the ability to directly grid LiDAR data without first creating a point cloud. Utilizing this direct gridding technique can reduce your eventual contour noise as the gridding process for LiDAR file types include a specific set of import options tailored to LiDAR data.
These options are included in the LiDAR Import Filtering dialog. The LiDAR Import Filtering dialog offers filtering options that can reduce point density, reject inconsistent data points, and set exact XYZ specifications. For this workflow, to reduce contour noise we are using the Sample Filtering | Nth point option.
The Sample Filtering options are used to thin data. When the Nth point box is checked any number entered will filter out every Nth point of the LAS fie. By setting the value to 2, half the overall points in the LAS file are filtered out. Reducing the total number of data points from 8,840,106 to 4,420,053. If it was desired to remove every third point one would enter the value as 3, and so on.
When using this direct gridding workflow you can only grid a single LAS file at a time. Since our raw LiDAR data is contained in 3 separate LAZ files this means it is required to go through the gridding process 3 times and apply the same Sample Filtering options to each new grid. Below you can view what each of the 3 LAS files look like when gridded and added to the same Map Object as separate contour layers.
The contour noise in those previously highlighted areas is noticeably reduced, but there are now 3 patchwork contour layers in the same map. A reader with sharp eyes may even notice the seams between those 3 layers.
To resolve this we can combine the grids using the Grid Mosaic command. The Grid Mosaic command combines two or more input grids of the same coordinate system into a single output grid. To mosaic any set of grids click Grids | Resize | Mosaic.
The final output after directly gridding the 3 LAZ files using the Nth Sample Filter, then applying a Grid Mosaic is shown in comparison to the original "noisy" contours below.
The filtering applied to create the above final grid was quite strong. Accordingly, in the examples outlined in this article the Direct Gridding workflow lead to a more prominent noise reduction than applying Grid Filters after the grid was converted from a Point Cloud.
If a higher value in the Nth point options was utilized there may be more noise present, but there would also be more original data points. The final product is still an accurate representation of our original LAZ files even with less data points.
If you are concerned about reducing your data points, or extra data interpolation from gridding, Workflow 1 would be best for you. If you only have a single LAZ file and are looking to reduce noise quickly, then Workflow 2 would be recommended.
These contour noise reduction methods can be applied to any industry workflow where you are utilizing LiDAR data. If you have included these workflows in your mapping practices, we would leave to hear about it! Share your story.
Do you have noisy LiDAR data and want to test these workflows out yourself? Download the Surfer Free Trial today!