v.lidar.correction(1)
β¨ v.lidar.correction β¨
okay bestie, gather round, because this is the final boss of the LIDAR filtering trilogy π
it's the v.lidar.correction module from the GRASS GIS User's Manual, and it does exactly what it says on the tin: it corrects the output of v.lidar.growing, and it's the last of the three algorithms for LIDAR filtering. no cap. π
πΈ KEYWORDS πΈ
vector, LIDAR
π SYNOPSIS π
v.lidar.correction
v.lidar.correction --help
v.lidar.correction [-e] input=name output=name terrain=name
[ew_step=float] [ns_step=float] [lambda_c=float] [tch=float]
[tcl=float] [--overwrite] [--help] [--verbose] [--quiet] [--ui]
π¦ Flags π¦
-eβ Estimate point density and distance and quit. Like, it figures out the point density and the distance in map units for the input vector points within the current region extents, and then it justβ¦ dips. π--overwriteβ Allow output files to overwrite existing files. (iconic behaviour honestly)--helpβ Print usage summary. your bestie when you're lost fr--verboseβ Verbose module output--quietβ Quiet module output--uiβ Force launching GUI dialog
π Parameters π
input=name[required] β Name of input vector map. Specifically the Input observation vector map name (aka thev.lidar.growingoutput).output=name[required] β Output classified vector map nameterrain=name[required] β Name for output only 'terrain' points vector mapew_step=floatβ Length of each spline step in the east-west direction. Default:25 * east-west resolutionns_step=floatβ Length of each spline step in the north-south direction. Default:25 * north-south resolutionlambda_c=floatβ Regularization weight in reclassification evaluation. Default:1tch=floatβ High threshold for object to terrain reclassification. Default:2tcl=floatβ Low threshold for terrain to object reclassification. Default:1
π DESCRIPTION π
so v.lidar.correction is step three of three in the LiDAR data filtering saga. the whole point of the filter is to recognize and extract attached and detached objects β think buildings, bridges, power lines, trees, all that β so you can build a Digital Terrain Model. ποΈ
here's the vibe: the module compares the LiDAR observations against a bilinear spline interpolation with a Tychonov regularization parameter, performed on the TERRAIN SINGLE PULSE points only. the gradient gets minimized by that regularization parameter. β¨
then it looks at the residuals β the gaps between the observations and the interpolated values β and that analysis lands you in four cases (and psst, the classification being referred to here is the v.lidar.growing output vector):
a) Points classified as TERRAIN that differ by more than a threshold value get interpreted and reclassified as OBJECT β for both single and double pulse points.
b) Points classified as OBJECT that are closed enough to the interpolated surface get 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 the v.lidar.growing module, or the output of this very module, v.lidar.correction, itself. Which means β yes bestie β this module can be applied more than once for a better filter solution (although, ngl, two times is usually enough).
The outputs are:
- a vector map with a final point classification as TERRAIN SINGLE PULSE, TERRAIN DOUBLE PULSE, OBJECT SINGLE PULSE or OBJECT DOUBLE PULSE
- a 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)
Accessed: Saturday Jan 17 05:41:23 2026
Main index | Vector index | Topics index | Keywords index | Graphical index | Full index
Β© 2003-2025 GRASS Development Team, GRASS GIS 8.4.2 Reference Manual
so yeah, that's the whole page β shoutout to the GRASS Development Team, Β© 2003-2025, GRASS GIS 8.4.2 Reference Manual, and this little number was accessed on Saturday Jan 17 05:41:23 2026 π and the page footer reads GRASS 8.4.2 / v.lidar.correction(1). slay, go filter some LiDAR, bestie π¦β¨
π¦ where this page comes from
- fedora 44: grass 8.4.2-4.fc44 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms