The current option to import las files in ArcGIS is the LAS dataset data type. According to ESRI:
The LAS dataset provides fast access to large volumes of lidar and surface data without the need for data conversion.
If the surface (raster) you are trying to create is a bare-earth DEM refer to the following posts:
One option is the LAS dataset to Raster
tool, but only when it is possible to filter1 the data by its ground returns. On the contrary, using the Cell Assignment Type
argument equal Average
or Minimum
on unclassified data could (probably, 'would') result in bad DEMs. Mostly, the result will depend on the point cloud density, the terrain cover complexity, and the quality required in the output. It is important to (double) validate the DEM if going through this way.
1 Pay attention that to filter the LiDAR files in a LAS dataset it is necessary to generate a LAS dataset layer first (through the Make LAS dataset layer
tool), or LAS dataset to Raster
will consider all types of returns (just filtering using the LAS dataset properties for visualization won't work when processing data).
Another option for creating DEMs in ArcGis is to use the combination of Las to Multipoint
tool for filtering ground points, and then, Point to Raster
(it is probably less efficient than the first method, though).
Other workflows for creating DEMs from LiDAR data in ArcGIS are described in the post below. It also has insights about aspects which should be taken into consideration, when generating DEMs.
For working on DEMs starting from unclassified .las data I would suggest using more robust algorithms not yet available within the ArcGIS platform. For example:
On the other hand, if the surface (raster) is a Digital Surface Model - DSM refer to the following posts:
Input of .las/.laz files and conversion to .asc DSM (LASzip and Fusion).
Input of .las files and conversion to .asc DSM (LAStools).
Another option to import .las files in ArcGIS would be to convert them into ASCII (.txt, for example). Unless there is a specific reason for using plain text, previous options are better. The main differences working with .las or ascii files are approached in this post:
So, an alternative would be to use the command line LDA2ASCII
from Fusion.
The LDA2ASCII
syntax is:
LDA2ASCII InputFile OutputFile format
Suppose the following:
- Fusion is stored under
c:\Fusion
.
- the las file name is
project.las
.
project.las
is stored in: c:\Lidar
.
- the new txt file will be saved at:
c:\LiDAR
.
- its name will be:
project.txt
Hint: use an text editor to write Fusion's program commands (e.g. Notepad++). Save it with .bat extension. Then, write:
Retrieve the following information: X, Y and Elevation.
c:\Fusion\LDA2ASCII c:\Lidar\project.las c:\Lidar\project.txt 0
Or if the .las files contain other information such as: Pulse, Return, X, Y, Elevation, Nadir and Intensity:
c:\Fusion\LDA2ASCII c:\Lidar\project.las c:\Lidar\project.txt 1
Save the .bat file, and then execute it (shortcut = F5)
Open project.txt
in ArcGIS.
For running LASzip from the command prompt window it is also necessary to specify the path of the input file.
For example, suppose the laszip.exe file is installed under the drive D: (D:\LASzip\laszip.exe) and that the .laz files are stored in D:\lidar.
Then, type:
D:\LASzip\laszip D:\lidar\*.laz
It will decompress all LAZ files in the current folder overwriting any
existing file. The output files will have same name as the input files (but with extension .las).
Some remarks:
- it is not necessary to type the file extension '.exe' in the command-line.
- one can also use the identifier
-i
for input parameter, but it is optional: D:\LASzip\laszip -i D:\lidar\*.laz
.
- the identifier
-odir
can be used to specify a different output folder: D:\LASzip\laszip -i D:\lidar\*.laz -odir D:\lidar\output
. It will save all .laz files with the same file names (except for .las extension) in the specified output folder. See Saving LAZ files to different location from input (LAS) files?.
- use the identifier
-odix
to append to output file names: D:\LASzip\laszip -i D:\lidar\*.laz -odir D:\lidar\output -odix _decompressed
. It means if the input file name is point_cloud_27.laz
, the output file name will be point_cloud_27_decompressed.las
.
See more examples here.
Another option (in relation to first example) is to proceed as suggested by Barbarossa, i.e., open the cmd from the input file folder and write the command as in your first attempt.
REM move to folder where the input file is, then run laszip.
cd D:\lidar
D:\LASzip\laszip *.laz
If you want to call laszip
directly from any folder without specifying the program path, then, berniejconnors's answer gives a good hint to add it in the environment variables (see here).
laszip D:\lidar\*.laz
All examples here work the other way around, i.e., converting from .las
files to .laz
.
Best Answer
One caveat to using FUSION: it truncates the precision of the output coordinates to only 4 decimal places, and I required 6. I really wanted to use WhiteBox GAT, however I was unable to get it to perform the nearest-neighbor processing (it kept insisting that the units from my files were in meters, not decimal degrees)
I ended up using SAGA GIS on the command line (functions on Windows and Linux - there's a Mac port in Brew but it's several revisions behind and didn't have LAS support).
I did a very rough job and simply converted the LAS point cloud directly into a raster grid via performing mean sampling for every grid square. As a result, the output file has a lot of holes. This could be fixed with one of the Gridding tools such as triangulation, nearest-neighbor, etc. However, those tools hung the app, possibly due to the sheer size of the dataset. For my purposes, simply sampling works fine, and has the added benefit of being significantly faster to process, as the performance is gated by I/O rather than CPU (SAGA has the side benefit of being more multi-core aware, as opposed to FUSION).
Rough steps which can be done in the GUI:
I also needed to use las2las.exe to move the data from LAZ to LAS format, since SAGA doesn't support LAZ yet.
The following is the Windows batch script which I used to successfully process ~450 files
Note that if you're working with .LAZ files, you'll need to uncompress them to .LAS format with las2las, like below:
and probably of these to delete it too