I have got laz file without classificationenter image description here

However everything what I can extract with pdal is this: enter image description here

Seems like the algorithm detects everything as ground. The code is following:

pipeline = [

 import pdal
 import json
 import numpy as np
 pipeline = pdal.Pipeline(json.dumps(pipeline))
 count = pipeline.execute()

I tried different filters, however no positive result. Another question is why 'return' condition works only with 'first' and returns RuntimeError: filters.pmf: No returns to process. in any other case

P.S. https://pdal.io/tutorial/ground-filters.html - this solution worked in my case. Now I have segmented ground and unclassified stuff. The problem was in deleting classified .laz file and ept folder every time before I'm trying to do segmentation. However problem with 'returns' still be unclear

  • 1
    Not an answer, however, if nothing else works another option for identifying those returns that lie on the probable ground surface (bare-earth points) is FUSION/LDV: Software for LIDAR Data Analysis and Visualization GroundFilter tool ( forsys.cfr.washington.edu/fusion/fusion_overview.html).
    – g123456k
    May 25, 2021 at 6:45

1 Answer 1


The reason I have 'first' returns workable is because my file only contains it.

There is more info here: https://github.com/PDAL/PDAL/issues/3463

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.