Skip to content

v.lidar.correction

Corrects the v.lidar.growing output. It is the last of the three algorithms for LIDAR filtering.

v.lidar.correction [-e] input=name output=name terrain=name [ew_step=float] [ns_step=float] [lambda_c=float] [tch=float] [tcl=float] [--overwrite] [--verbose] [--quiet] [--qq] [--ui]

Example:

v.lidar.correction input=name output=name terrain=name

grass.script.run_command("v.lidar.correction", input, output, terrain, ew_step=None, ns_step=None, lambda_c=1, tch=2, tcl=1, flags=None, overwrite=False, verbose=False, quiet=False, superquiet=False)

Example:

gs.run_command("v.lidar.correction", input="name", output="name", terrain="name")

Parameters

input=name [required]
    Name of input vector map
    Input observation vector map name (v.lidar.growing output)
output=name [required]
    Output classified vector map name
terrain=name [required]
    Name for output only 'terrain' points vector map
ew_step=float
    Length of each spline step in the east-west direction
    Default: 25 * east-west resolution
ns_step=float
    Length of each spline step in the north-south direction
    Default: 25 * north-south resolution
lambda_c=float
    Regularization weight in reclassification evaluation
    Default: 1
tch=float
    High threshold for object to terrain reclassification
    Default: 2
tcl=float
    Low threshold for terrain to object reclassification
    Default: 1
-e
    Estimate point density and distance and quit
    Estimate point density and distance in map units for the input vector points within the current region extents and quit
--overwrite
    Allow output files to overwrite existing files
--help
    Print usage summary
--verbose
    Verbose module output
--quiet
    Quiet module output
--qq
    Very quiet module output
--ui
    Force launching GUI dialog

input : str, required
    Name of input vector map
    Input observation vector map name (v.lidar.growing output)
    Used as: input, vector, name
output : str, required
    Output classified vector map name
    Used as: output, vector, name
terrain : str, required
    Name for output only 'terrain' points vector map
    Used as: output, vector, name
ew_step : float, optional
    Length of each spline step in the east-west direction
    Default: 25 * east-west resolution
ns_step : float, optional
    Length of each spline step in the north-south direction
    Default: 25 * north-south resolution
lambda_c : float, optional
    Regularization weight in reclassification evaluation
    Default: 1
tch : float, optional
    High threshold for object to terrain reclassification
    Default: 2
tcl : float, optional
    Low threshold for terrain to object reclassification
    Default: 1
flags : str, optional
    Allowed values: e
    e
        Estimate point density and distance and quit
        Estimate point density and distance in map units for the input vector points within the current region extents and quit
overwrite: bool, optional
    Allow output files to overwrite existing files
    Default: False
verbose: bool, optional
    Verbose module output
    Default: False
quiet: bool, optional
    Quiet module output
    Default: False
superquiet: bool, optional
    Very quiet module output
    Default: False

DESCRIPTION

v.lidar.correction is the last of three steps to filter LiDAR data. The filter aims to recognize and extract attached and detached object (such as buildings, bridges, power lines, trees, etc.) in order to create a Digital Terrain Model.

The module, which could be iterated several times, makes a comparison between the LiDAR observations and a bilinear spline interpolation with a Tychonov regularization parameter performed on the TERRAIN SINGLE PULSE points only. The gradient is minimized by the regularization parameter. Analysis of the residuals between the observations and the interpolated values results in four cases (the next classification is referred to that of the v.lidar.growing output vector):

a) Points classified as TERRAIN differing more than a threshold value are interpreted and reclassified as OBJECT, for both single and double pulse points.

b) Points classified as OBJECT and closed enough to the interpolated surface are interpreted and reclassified as TERRAIN, for both single and double pulse points.

The length (in mapping units) of each spline step is defined by ew_step for the east-west direction and ns_step for the north-south direction.

NOTES

The input should be the output of v.lidar.growing module or the output of this v.lidar.correction itself. That means, this module could be applied more times (although, two are usually enough) for a better filter solution. The outputs are a vector map with a final point classification as as TERRAIN SINGLE PULSE, TERRAIN DOUBLE PULSE, OBJECT SINGLE PULSE or OBJECT DOUBLE PULSE; and an vector map with only the points classified as TERRAIN SINGLE PULSE or TERRAIN DOUBLE PULSE. The final result of the whole procedure (v.lidar.edgedetection, v.lidar.growing, v.lidar.correction) will be a point classification in four categories:

TERRAIN SINGLE PULSE (cat = 1, layer = 2)
TERRAIN DOUBLE PULSE (cat = 2, layer = 2)
OBJECT SINGLE PULSE (cat = 3, layer = 2)
OBJECT DOUBLE PULSE (cat = 4, layer = 2)

EXAMPLES

Basic correction procedure

v.lidar.correction input=growing output=correction out_terrain=only_terrain

Second correction procedure

v.lidar.correction input=correction output=correction_bis terrain=only_terrain_bis

REFERENCES

Antolin, R. et al., 2006. Digital terrain models determination by LiDAR technology: Po basin experimentation. Bolletino di Geodesia e Scienze Affini, anno LXV, n. 2, pp. 69-89.

Brovelli M. A., Cannata M., Longoni U.M., 2004. LIDAR Data Filtering and DTM Interpolation Within GRASS, Transactions in GIS, April 2004, vol. 8, iss. 2, pp. 155-174(20), Blackwell Publishing Ltd.

Brovelli M. A., Cannata M., 2004. Digital Terrain model reconstruction in urban areas from airborne laser scanning data: the method and an example for Pavia (Northern Italy). Computers and Geosciences 30 (2004) pp.325-331

Brovelli M. A. and Longoni U.M., 2003. Software per il filtraggio di dati LIDAR, Rivista dell'Agenzia del Territorio, n. 3-2003, pp. 11-22 (ISSN 1593-2192).

Brovelli M. A., Cannata M. and Longoni U.M., 2002. DTM LIDAR in area urbana, Bollettino SIFET N.2, pp. 7-26.

Performances of the filter can be seen in the ISPRS WG III/3 Comparison of Filters report by Sithole, G. and Vosselman, G., 2003.

SEE ALSO

v.lidar.edgedetection, v.lidar.growing, v.surf.bspline, v.surf.rst, v.in.pdal, v.in.ascii

AUTHORS

Original version of program in GRASS 5.4:
Maria Antonia Brovelli, Massimiliano Cannata, Ulisse Longoni and Mirko Reguzzoni

Update for GRASS 6.X:
Roberto Antolin and Gonzalo Moreno

SOURCE CODE

Available at: v.lidar.correction source code (history)
Latest change: Friday Feb 07 19:16:09 2025 in commit a82a39f