Author: Lewis Graham, August 26, 2021
I find it very interesting that graphic topographic contours are still alive and well in this age of digital elevation models (DEM). When users first encounter contours generated from LIDAR data (especially high density UAV-collected LIDAR data), they are dismayed at the “jaggedness” of these data. I did a quick ground classification on some True View 515 data and drew raw contours at 33 cm spacing (~ 1 ft) – see Figure 1. These are obviously terribly jaggy; not pleasing to the eye at all!
Figure 1: Raw 33 cm contours of the ground class
Generating Contours To understand what is happening, we need to have a look at how we generate contours. Topographic contours are lines of constant elevation (also called isolines or isopleths of elevation). There are a number of ways these can be generated but all require determining a surface.
In our True View EVO product, we do this by rendering the 3D points to be contoured (invariably the ground) as a triangulated irregular network (TIN) surface. This is a wire frame that connects all the points to be used in synthesizing a surface (such as ground). We then find a point on a TIN edge that corresponds to the elevation to be contoured. We next just trace this contour line through adjacent edges. The process is repeated for all desired elevations (obviously there is a lot more in the details but you get the idea). A close-up view of this is shown in Figure 2. The orange points are ground points, connected by the TIN wireframe. The green points are “unclassified” points and hence are not pulled in to the model. The magenta lines are contours. If this were the 168 m contour, then the point where these contours intersect each TIN edge will be exactly 168 m of elevation.
Figure 2: 40 cm x 40 cm patch of ground showing contour line construction
The patch shown in Figure 2 is quite small at only 40 cm x 40 cm. This gives some insight into the problem – we have too many points!!
These contours that include every TIN edge of the LIDAR point cloud ground points are usually termed “engineering” contours. I am not sure where this term originates but it is usually reserved as a way of justifying jagged contours! A lot of the jaggedness is caused by the very high oversampling of the LIDAR data relative to the contour interval. For example, our True View 515 (at 75 m AGL flying height) generates a nominal planimetric point spacing of about 5 cm. The system has a precision specification of 5 cm vertical at 1 σ. So we have this situation where the “noise” is close to the point spacing.
An interesting thing about topographic contours is that they cannot be smoothed “after the fact” and still maintain valid topography. For example, I cannot just apply a vector smoothing algorithm (you GIS users might think Douglas–Peucker smoothing, which is available in EVO) because this might cause two adjacent contour lines to cross. Thus any manipulation needs to be performed at the point level, prior to contour line generation.
Smoothing Techniques Now before we launch into some smoothing approaches, lets first discuss “cartographic” contours. Cartographic contours are those beautiful contours that you can still find on old USGS “topo” maps. Many of these were actually hand sketched using analytic stereo plotters. The cartographer doing the sketch is quite the artist, taking a bit of license to distort the contour here and there for the sake of smoothness. These can be automatically generated but a follow-on step of topographic correction must be applied (quite time consuming). This is toolset you will find in GIS tools but not generally in engineering applanations such as EVO. That said, there are a few things you can do in EVO to improve the appearance of contours. The first is to use our built-in “smooth contour” option. You will learn how this is applied in our True View EVO training. Generally the smoothing parameter should be set to about 1/10 the contour interval (so 0.1 for 1 m contours, for example). An example of applying this to the raw contours of Figure 1 is shown in Figure 3. As you can see, these contours are significantly less noisy. The nice thing about our automatic smoothing is you just turn it on – no extra work.
Figure 3: Contours from EVO's "smooth contour" rendering
If this is not quite good enough for you, then the point cloud itself can be smoothed. EVO contains a tool called a Moving Least Squares Estimator that smooths the noise in a point cloud without changing its network accuracy or destroying sharp-edged features (such as power lines). If you apply this algorithm followed by our built-in “smooth contours” tool discussed above, the result begins to approach “cartographic” quality. An example of this is shown in Figure 4.
Figure 4: Smooth Contours rendered over a smoothed point cloud
For most workflows that involve generating vector contours to feed a downstream application (such as Autodesk), EVO’s automatic contour smoothing will sufficiently thin the contours to allow ingestion into these products. For a bit more aesthetic appeal, apply our point cloud smoothing followed by smooth contours. Both these steps are automated so it does not entail any additional manual labor other than launching the tasks. Do note that, because of the precision of LIDAR data, you will never get those super smooth cartographic contours. This is to be expected; grass itself can cause vertical “noise” of many centimeters! However, with the tools available in EVO, you will get very accurate (hence “smoothed engineering”) contours!