I have been trying to import a huge LIDAR file (10.5) Gb to GRASS GIS using r.in.lidar
. It does the task, but only for part of the image, as shown below:
Canopy Height Model (CHM) generated with GRASS:
CHM generated with FUSION:
The DEM, DSM and CHM generated in GRASS were built from the following commands, respectively:
r.in.lidar -o input=/my/route.las output=lidar_min method=min
r.in.lidar -o input=/my/route.las output=lidar_p99 method=percentile pth=99
r.mapcalc "CHM = lidar_p99@ig - lidar_min@ig"
All the three layers are incomplete, only some parts of the image are processed. I have tried different solutions: importing the files that I fused for creating the big one, importing files that had been created using FUSION (a file with only the ground points). I tried exporting the above rasters to geotiff and open them in QGIS, but the result is the same.
The only thing that worked is converting the LIDAR file to ASCII (only the xyz columns), and then importing it with r.in.xyz
.
r.in.xyz input=/my/route.txt output=lidar_min separator=comma method=min
and it worked. This is the DEM produced using r.in.xyz
from GRASS.
Then, the data are complete.
I think one possible reason behind r.in.lidar
is not working as expected might be that GRASS only imports the pulses that are on the nadir or very near to it or only some passes of the flight. Does somebody know the reason behind this behavior?
If it helps, this was the command line used in Fusion to generate the CHM that worked:
CanopyModel /outlier:0,20 /ground:D:\DTM_default.dtm /ascii D:\CHM_default.dtm 5 m m 0 0 0 0 D:\laslist.txt
Sample
I uploaded a small sample of the data here (https://goo.gl/0S9p0l). It contains a file with only the xyz coordinates (.txt), other with the whole table (x,y,z, intensity, scan angle, etc.) (.las) and other two files that are DSMs created from the point files (.txt and .las).