Skip to main content
16 votes

Difference between LAStools, libLAS and PDAL?

The answer by Howard Butler pretty much sums it up. Some more background. When I created the first LAStools and the LASlib library that the tools are build upon I was a postdoc at UC Berkeley and ...
LAStools's user avatar
  • 1,184
13 votes
Accepted

Difference between LAStools, libLAS and PDAL?

libLAS was developed to provide read/write support for LAS and it was modeled on LAStools which at the time was not released under an open source license. In the subsequent years, many parts of ...
Howard Butler's user avatar
11 votes

Python-PDAL: error reading Format 1.4 LAS File - (readers.las Error) Global encoding WKT flag not set for point format 6 - 10

I hope this provides a bit more context for the original question and helps anyone who comes here in the future: For LAS 1.4 using Point Data Record Format 6 - 10, the Global Encoding (GE) flag must ...
peterwjacko's user avatar
9 votes
Accepted

Converting .las to .pcd file using PDAL?

The PDAL PCD Writer can write .pcd files. For it to work, you must have linked the PCL libraries at compile time. The PDAL OSGeo4W build does not have PCL support. If you are unable to build PDAL with ...
Howard Butler's user avatar
7 votes

Finding tree canopy width using PDAL?

First, for the answers proposed here, you probably do not want to use the ferry filter to push HeightAboveGround to Z, at least not prior to segmentation, as the act of normalizing heights involves ...
chambbj's user avatar
  • 108
7 votes
Accepted

How to install PDAL in Windows?

You downloaded the source code, not a prebuilt binary. If you read the PDAL download page you linked to you will see: Binaries ... Windows Windows builds are available via Conda Forge (64-bit only). ...
user2856's user avatar
  • 67.9k
6 votes
Accepted

Erratic results from filters.normal in PDAL?

After all, it made sense. A flat plane can have 2 normals. In this case, the slight wobble of the rotating sensor made some points a little above and some points below the average plane. Hence the ...
tilt's user avatar
  • 3,279
5 votes

Extract Point Cloud bounding box with PDAL in Python?

Seems like you should get to know Python's built-in subprocess module. Among other things, it enables you to make command line calls from inside a script and capture the results. import subprocess ...
David Diaz's user avatar
5 votes
Accepted

Creating a Canopy Height Model (CHM) image from a LAS file on Mac?

I ended up with this solution with PDAL and GDAL: First I used liblas to create LAS containing only ground points. Then I used PDAL similar to the "Basic Example" but with output_type: max to create ...
oskarlin's user avatar
  • 1,941
5 votes

Getting extent of a point cloud using laspy

You should use min and max property of header. from laspy.file import File f = File("path/to/file.laz", mode='r') h = f.header # h.min: [min_x, min_y, min_z] - h.max: [max_x, max_y, max_z] extent = ...
Kadir Şahbaz's user avatar
5 votes

PDAL filters reprojection is not changing Z values

UTM 15N EPSG:32615 doesn't technically have a vertical datum, so to do a vertical transformation a vertical datum has to be specified. I changed the input SRS to --filters.reprojection.in_srs="...
TJR's user avatar
  • 1,612
4 votes

Creating a Canopy Height Model (CHM) image from a LAS file on Mac?

In addition to what has been mentioned above, SPDLib is another powerful set of open-source tools for processing LiDAR data (LAS files). It is cross-platform and supports Mac. The spdinterp program ...
dmci's user avatar
  • 4,912
4 votes

Creating a Canopy Height Model (CHM) image from a LAS file on Mac?

1) You can use the the little known Whitebox GAT (Mac version, Download Whitebox Geospatial Analysis Tools), developed for the Java platform (Java Runtime Environment (JRE) version 8.0 or higher ...
gene's user avatar
  • 55.3k
4 votes
Accepted

How to write multiple .las files from polygon clipping with PDAL?

This kind of pipeline isn't supported at the moment, but we do have a ticket discussing how to do so. There's another way that might be relevant to you. You can use the combination of filters.assign ...
Howard Butler's user avatar
4 votes
Accepted

pdal | issues when using tiledb reader in python

validate does not need to be called on the pipeline to run it and if you comment out pipeline.validate() then the pipeline executes within Python. This is a bug https://github.com/PDAL/PDAL/issues/...
normanb's user avatar
  • 56
4 votes

How to create boundary polygons of the actual data area in LAS files?

Perhaps there is something to tune in the PDAL parameters. If tindex does not give good enough result when used like in this tutorial https://pdal.io/workshop/exercises/analysis/boundary/boundary.html ...
user30184's user avatar
  • 68.1k
4 votes
Accepted

PDAL is mixing Lat and Lon when using tindex

The las format defines that points have X/Y/Z coordinates and it defines how to include information about georeferencing https://www.asprs.org/wp-content/uploads/2010/12/LAS_1_4_r13.pdf. However, it ...
user30184's user avatar
  • 68.1k
4 votes
Accepted

Is it possible to run PDAL without Conda?

In OSGeo4W setup -> Advanced Install, you can select the PDAL Library and install on a QGIS instalation and use in Python-Qgis standalone or in OSGeo4W Shell.
Marco Reliquias's user avatar
4 votes
Accepted

Python-PDAL: error reading Format 1.4 LAS File - (readers.las Error) Global encoding WKT flag not set for point format 6 - 10

It appears that the LAS file was simply missing a Spatial Reference System. Based on the documentation for reader.las doc, I was able to skip the reading of a CRS, which removed the error using the ...
CharlesG's user avatar
  • 233
4 votes
Accepted

How to correct PDAL error using filters.smrf "Some NumberOfReturns or ReturnNumber values were zero but not all..."

You probably have some points in the dataset that have ReturnNumber and/or NumberOfReturns == 0. Here's a filter config that will hammer those to 1 so things can move forward: { "type": &...
Howard Butler's user avatar
3 votes

Identifying SBET coordinate system and reprojecting it with PDAL?

The follow up discussion from this question can be found in github.com/PDAL, issue 1524. As commented by @abellgithub (mar/17), SBET files do not carry a Coordinate Reference System (CRS) information....
Andre Silva's user avatar
  • 10.3k
3 votes
Accepted

Finding tree canopy width using PDAL?

There are two additional options to identify trees from canopy height models. Both of these options will identify (mostly) trees, which you can then use as a mask to isolate buildings. find_trees in ...
Aaron's user avatar
  • 51.8k
3 votes
Accepted

PDAL crashes when trying to filter noise points from outliers filter

This file is strange. First, an EPSG code of 0 isn't valid. LOCAL_CS["unnamed",AUTHORITY["EPSG","0"]] Second, SMRF is designed for aerial LiDAR data, not this (bridge superstructure?). Third, ...
Howard Butler's user avatar
3 votes
Accepted

Getting LiDAR point cloud point spacing using PDAL

pdal info will report summary statistics (source): pdal info --boundary /Users/me/test/data/las/autzen_trim.las { "boundary": { "area": 746772.7543, "...
Aaron's user avatar
  • 51.8k
3 votes
Accepted

What is the correct way to verify pdal plugins (.e57 reader) in OSGeo4W shell?

I do not believe that you can get the PDAL e57 reader into OSGeo4W. The installed readers can be listed from the OSGeo4W shell with a command pdal --drivers and readers.e57 is not on the list. The ...
user30184's user avatar
  • 68.1k
2 votes

Converting .las to .pcd file using PDAL?

As commented here, if you get error: PDAL: Couldn't create writer stage of type writers.pcd Basically it says, there is no PCL plugin. Hence, you should show library or rebuild PDAL with PCL ...
Muzo583's user avatar
  • 61
2 votes

PDAL Reader.las and Writer.las warning: 'found invalid value of '0' for point's return number'

(pdal pipeline readers.las Warning) C:/denoise\lake.las: Found invalid value of '0' for point's return number. '0' is not a valid return number in LAS, and PDAL is just warning you here about it. It ...
Howard Butler's user avatar
2 votes

Identifying SBET coordinate system and reprojecting it with PDAL?

My guess would be that the data is unprojected latitude longitude (usually WGS84, EPSG:4326), stored in radians. The precision of the SBET translation is therefore a bit low to give useful coordinates....
Christian's user avatar
2 votes
Accepted

Creating filter stage of type filters.height using PDAL?

filters.height has been replaced by filters.hag so if you want to find the Height Above Ground (HAG) in point cloud data use filters.hag: { "pipeline":[ "input.las", { "type":"filters....
ahmad735's user avatar
  • 133
2 votes
Accepted

PDAL: Argument references invalid/unused stage: 'filters.voxelgrid'

pdal translate requires the filter type voxelgrid. The correct syntax is as follows: $ pdal translate -i /Users/aaron/temp/1958-09-54.laz -o /Users/aaron/temp/1958-09-54-thinned.laz voxelgrid --...
Aaron's user avatar
  • 51.8k

Only top scored, non community-wiki answers of a minimum length are eligible