laspy is another good LAS read/write software. It supports working with the data directly in numpy arrays and a number of other nice Pythonic features. It isn't processing software per se, however.
PDAL has the ability to use Python as an in-pipeline filtering language, but this isn't a processing engine either.
There isn't too much in the Python quiver ...
I have recently released an open-source (MIT) stand-alone (i.e. no dependencies) library called WhiteboxTools for performing many types of geospatial analysis, including LiDAR data processing. The library is written in Rust and has extensive support for Python-based scripting. For example, the following Python script uses the WhiteboxTools library to ...
SPDlib provides a very comprehensive line tools for processing Laser Scanning data (both Terrestrial and Airborne data). It is available for Linux and can be easily installed using Anaconda. SPDlib also has a viewer called that can be used to visualise point clouds (see screenshot). There is a number of very useful tutorials on available on the wiki and on ...
It is possible to run CloudMetrics as a first round to get the maximum height, and then, run it again specifying strata with the desired intervals. The trick is to automate such process.
I did it using the software R, but you can do it using other software (I guess even directly from the command prompt window).
I assume you already have one cylinder per ...
We recently stubled across this issue as well and it is documented here: The merged LiDAR shows the trouble you report. The reason is that one flightline is much brighter than the other flightline so that the LiDAR points cannot simply be merged and have their intensity processed together. In the same flightline you also notice the negative effects of clouds ...
This effect could be a consequence of having different point densities within the flight line overlap regions. A possible solution would be to homogenize the LiDAR cloud.
With Fusion the command line to accomplish such task is ThinData:
ThinData allows you to thin LIDAR data to specific pulse densities. This capability is useful when comparing analysis ...
The most suitable alternative (if default settings do not work) is to simulate combinations of GroundFilter parameters until the best result is achieved. It is important to have real accurate data to compare with, though.
This is because other variables besides point density will influence in classification accuracy, such as terrain type and objects above ...
The issue you are trying to solve has nothing to do with R. You are running application that is independent of R with the system() function.
The error that you got originates in program gridmetrics.exe. You can verify that by just printing the outcome of your paste() function and running that through command line. You should get the same error message as ...
+1 to @Andre Silva for providing a solid workflow using Fusion. Here is a solution that cuts out Fusion and allows you to keep the analysis in R.
Add required libraries and simulate some lidar data with height (0-40)
e <- extent(553462.6, 554070.4, 5225868, 5226352)
Oh, this is a DOS thing, not fusion... you want to use DIR /B to generate a list of just the file names (/b means brief). If you want the full paths use DIR /B/S - this will also search all sub directories.
To get a list of just the las files in the current directory into a text file:
DIR /B *.LAS > FileList.txt
(the > means redirect the output into ...
Although not strictly a 'Python' library but rather a set of wrappers for other tools, in particular GRASS, there are the 'ARSF DEM Scripts' which I have written:
One of the aims was to provide a common set of Python functions for different command line tools (called using subprocess) with a method flag used to ...
There is a PostgreSQL Pointcloud extension for storing point cloud (LIDAR) data. Boundless has an excellent tutorial highlighting some of the functionality available with the extension. Essentially, this is a critical link in many LiDAR processing pipelines.
Building on dmci's answer, for forestry applications, SPDlib has a spdmetrics command that allows ...
How complete are Fusion tools in QGIS?
Fusion has 39 command line tools total (in version 3.3). In QGIS (2.12.2), there are 13 Fusion tools connected and available with GUI interface. They are:
CanopyMaxima, CanopyModel, Catalog, ClipData, CloudMetrics, Cover, CSV2Grid, FilterData, GridMetrics, GridSurfaceCreate, GroundFilter, MergeData, TinSurfaceCreate.
As determined while working through the problem with Aaron, I figured out I was working with corrupt data, because applying the same code to other .las file worked (here is the alternative file used).
I have opened another question related to why FUSION is creating corrupt data when using the polyclipdata module here: FUSION polyclipdata creates corrupt ...
Work around: use switches /grid:X,Y,W,H or gridxy:X1,Y1,X2,Y2 to manually offset the output grid by inputting its correct extent coordinates.
Misalignment cause (hypothesis):
Maybe the DTM's header is not being read correctly. It would explain both the misalignment with GridMetrics output and also switches /align and /extent not working, because they are ...
Now, there is a FUSION plugin for QGIS v3+ (credits to author Alexander Bruy). It is in an experimental phase (version 0.0.1) and can be downloaded from here.
It works the same way as the LAStools plugin, which means one needs both the plugin and the core software installed. See: LAStools plugin in QGIS: ''The system cannot find the path ...
Use Fusion's LTKProcessor to speed up performance of PolyClipData. It is described in Appendix C from Fusion's manual (emphasis mine):
Using LTKProcessor to Process Data for Large Acquisitions
LTKProcessor is designed to facilitate the application of FUSION-LTK tools to large data acquisitions. It uses multiple data files to create seamless data ...
Follow the instructions in my answer here to use the Fusion's command line PolyClipData.
Assuming you have:
shapefiles named tree_0.shp, tree_1.shp,...,tree_138.shp (as stated through comments).
the las file to be clipped with name data.las.
the fusion software stored directly under the c: drive.
the shp files and the las file stored under a folder named '...
TerraScan can't extract advanced metrics such as the ones available from Fusion's tools Cloudmetrics and Gridmetrics.
Chapters 10 and 12 in TerraScan user's guide mention that is possible to extract just some basic metrics such as:
count of points.
minimum and maximum elevation per point class.
References in TerraScan user's guide:
Chapter 10 - Main ...
The good folks at the Remote Sensing Applications Center (RSAC) noticed from the metadata that the Lidar data specs are insufficient to calculate many of these grid metrics. In particular:
NPS is 1.0 – 1.5 pulses/sq m
Side Lap (Minimum): 25%
Field of View (full): 40 degrees
These three parameters, especially when combined, will likely result in data gaps ...
If you look at the source code of the QGIS toolbox for LAStools (now part of the processing plugin framework) you can see how to call external software (here LAStools) for carrying out LiDAR processing operations.
Disclaimer: I'm on the development team.
We at the Vienna University of Technology have been developing a command-line tool for orientation and processing of airborne laser scan data for some time now. Since last summer, our product is available for Linux as well:
There is a free demo version supporting processing for up to a million points, as well ...
Your best bet is ccViewer that comes with CloudCompare. It supports both Linux and MacOS. For analysis, I would look to tools in Python, R, or Julia. You can also compile LAStools for Linux as well it seems.
In general as you already mentioned the best software is only available for windows systems and you might get along with using WINE for your problem. Besides that:
GRASS is obvious your first and best choice and what i have been using most of the time. They even have a wiki-page explaining how to load/convert/analyse/visualize LiDAR data.
You can use the ...