359
LIDAR FILTERING: TESTING OF AN AUTOMATIC PROCEDURE DEVELOPED IN
THE FREE OPEN SOURCE GIS GRASS
L. Barazzetti, M.A. Brovelli
Politecnico di Milano, DIIAR, P.za Leonardo da Vinci 32, 20133 Milan,
Italy-(luigi.barazzetti)@mail.polimi.it, Italy-(maria.brovelli)@polimi.it
Commission WG IV/3
KEY WORDS: Aerial Survey, Feature Extraction, Filtering, LiDAR, Spatial Planning
ABSTRACT:
The goal of this study was to analyze the filtering performance of LiDAR data of an algorithm implemented by our group of research.
The algorithm is completely automatic and needs only the raw data classified as first and last pulses. It was implemented in the open
source software GRASS and it is composed of three functions that have to be launched in sequence: v.lidar.edgedetection,
v.lidar.growing and v.lidar.correction. Starting from the classified points, the algorithm can performed a grid DTM/DSM. The check
of the algorithm quality was carried out with a dataset that represents a real case, being already used to create a DTM/DSM along
some urbanized areas of Sardinia Region Coast, in Italy. The first control regarded the filtering performance of the implemented
algorithm. It was performed by comparing our results with those one obtained by TopScan, a German company which executed the
same processing on behalf of Sardinia Region, using a preliminary automatic algorithm followed by a manual correction. Sardinia’s
products were checked by visual comparison with high resolution orthophotos (12.5 cm) and with terrain survey measurements. We
assumed Sardinia’s classification as a reference. Another control was then carried out to check the gridded products (DTM and DSM)
with GPS measurements.Lastly, we checked the computational performances in terms of time when the adopted resolution of the grid
DTM/DSM varies.
1. INTRODUCTION
Nowadays LiDAR technology is widely used to perform DTM
and DSM. The high acquisition frequency (larger than any other
method), the good accuracy and the short time necessary to
acquire the data make LiDAR technology a method of
fundamental importance (Baltsavias, 1999).
A still open issue concerns the filtering of raw data. In fact
LiDAR data are generally filed as first and last (in some cases
also multiple) pulses, without information about the objects
which caused the reflection of the signal. This means that it is
not possible to distinguish between points lying on the terrain or
on a generic object on the ground. Therefore, the creation of the
DTM becomes impossible by using only the raw data without a
preliminary filtering process (Sithole, 2005).
A DTM is usually the main goal of a LiDAR survey (while a
DSM can be obtained with a simple interpolation of the first
pulses) and thus the development of automatic and quick
filtering algorithms becomes an issue of essential interest.
A filtering algorithm should be able to process several millions
points and classify them as belonging or not to the ground
(Sithole and Vosselmann, 2004). Many filtering algorithms
were developed in these last years but often they are included in
proprietary and not freeware software and many users have not
the possibility to use them.
Our group of research implemented a filtering procedure in the
free open source GIS software GRASS (Geographic Resources
Analysis Support System) (Neteler and Mitasova, 2002), which
is one of the OSGeo (Open Source Geospatial) projects. The
algorithm is free downloadable and it is composed of three
functions that have to be launched in sequence:
v.lidar.edgedetection, v.lidar.growing and v.lidar.correction
(the terminology refers to the versions 6.X). The whole
classification process is fully automatic and needs only the raw
data classified as first and last pulses (Antolin and Brovelli,
2007, Brovelli et al., 2004).
The first function v.lidar.edgedetection recognizes the edges of
the objects. It starts with an interpolation of the sparse data on a
regular grid by using bilinear splines, so that a continuous
surface is created. The new surface (especially the magnitude of
the gradient and its slope) is compared with the sparse data in
order to identify the edges and classify each point in two main
categories: ground and object.
The second function v.lidar.growing fills in the edge lines
previously founded. The method is based on the hypothesis that
the inner part of an object has a height value larger than that
close to its edge.
At the end of the computation each point is classified as single
pulse terrain, double pulse terrain, single pulse object and
double pulse object.
Obviously, the previous hypothesis can be unverified. This
means that classification errors could appear in particular
situations. For this reason it is opportune to use also
v.lidar.correction, which executes a final correction of the
previous misclassification errors. This function is based on a
preliminary large step interpolation of the points classified as
ground and a following analysis of the residuals between the
new surface and the sparse points.
Though the complete algorithm is composed of three different
functions, it is possible to launch them together (e.g. with a
simple LINUX script). In any case we preferred to split the