I'm building a DEM of a terrain in GRASS and have 48 LiDAR (.las) files. I know I can do this by using r.in.lidar (including the list of files as a .txt) and then r.fillnulls

However, I want to test how different it is to do the same process but using v.in.lidar and then interpolating with something like v.surf.rst as explained here

However, v.in.lidar seems not to accept the list of all .las files as r.in.lidar does, thus I'm forced to do this one by one. This is not only cumbersome, but I'm also afraid the quality of the output may not be the best in the borders between tiles.

I would rather avoid merging all my .las files in one, as this would be a very heavy file and I may not be able to use some functions in GRASS as explained here in Step 4.

Does anyone know how to efficiently (all files in one or few lines) import several .las files to GRASS as vectors so i can then interpolate them using v.surf.rst or similars?

Some further details of my problem

The point clouds have ground and non ground points, but they are classified and am using class_filter=2. In a 5m resolution grid the point density is around 15-20 points on average on each of them. I want to use the DEM for a flood model and to analyse vegetation height with the same LiDAR data (other classes). I think I need to perform the interpolation. The only way to have almost no gaps would be a >15 m resolution which is not acceptable for my problem. Although not preferable, I would be happy to use alternative software (as long as it is open source), if there was no possible solution in GRASS.

GRASS Version

GRASS version: 7.6.0
GRASS SVN revision: r73958
Build date: 2019-01-17
Build platform: x86_64-w64-mingw32
GDAL: 2.4.0
PROJ.4: 5.2.0
GEOS: 3.7.0
SQLite: 3.26.0
Python: 2.7.14
Platform: Windows-10-10.0.16299

  • 1
    Thanks for the reply. Not sure what you mean by wildcards, but in r.in.lidar i use the parameter "file" to include a list of all .las, but this is not available in v.in.lidar. I would be happy to loop, but am not sure how to do this inside a Grass script, is this possible? Or do you mean using grass from python or something like that? I would like to do the test in several tiles, as they have different amounts of NAs, and i would like to see how results change as a function of this. By one or few lines i mean that if i had to do the analysis one by one, but through a loop, that would be ok.
    – Juan Ossa
    Feb 7, 2019 at 1:36
  • Thanks for the clarification. For r.in.lidar that is what i used, all file names in a .txt file and then include this text file as a parameter. This is not possible in v.in.lidar, as there is no such parameter.
    – Juan Ossa
    Feb 7, 2019 at 4:48


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.