LiDAR & point clouds

LAS, LAZ and COPC files: returns, classes, density, and the surfaces you derive from them.

One laser pulse producing three returns through a canopy, and the two surfaces derived from them. one pulse, several returns — and two different surfaces1st — canopy2nd — understorey3rd — groundDSM — first returnsDTM — ground returnsA DSM is the first returns, a DTM the ground ones — the difference between them is canopy height

A point cloud is a few hundred million rows of x, y, z, intensity, return number and class. Almost nothing here is about the points themselves — it is about the surfaces you derive from them and the classification you inherited.

One pulse can produce several returns: the first strikes the canopy, the last reaches the ground. A digital surface model is built from the first returns, a terrain model from the returns somebody classified as ground, and the difference between the two is the canopy height. Which means the ground classification in the file is doing more work than any code you write, and it was made by a vendor whose parameters you do not have.

The concepts cover LAS and LAZ structure, returns, classes and density; the how-to guides read, filter, tile and rasterise; and the fixes cover the coordinate, scale and offset problems that make a cloud land in the wrong place.

Learning paths run through this topic too — see the end of this page.

🧭 Start with the concepts

The ideas the how-to guides below assume you already have.

⚙️ Then do the task

Step-by-step walkthroughs with code you can copy and adapt.

Show every how-to guide in this topic

🔧 When it breaks

The errors this topic produces, with the cause explained rather than just the command.

Related topics

Subjects that keep coming up alongside this one, most overlap first.

Keep browsing

LiDAR & point clouds sits in Imagery & point clouds. Every topic on the site is listed on the topics index.