[pdal] filters.litree very slow on ~2.7M pts (45+ min, stuck at tree 4) — any tips to speed it up?

Αντώνης Βενιανάκης antonis.ven95 at gmail.com
Wed Sep 24 05:21:58 PDT 2025


Hi everyone,

I’m seeing very slow performance from filters.litree and would appreciate
advice on how to improve it or what I might be doing wrong.

*Symptom*
The pipeline runs for ~45 minutes and is only at the 4th tree. Debug output
(abridged):

(pdal pipeline filters.litree Debug)            Max HAG value of 23.7108
(pdal pipeline filters.litree Debug) Classifying points for tree 1
(|Ui| = 2688904)
(pdal pipeline filters.litree Debug)                    |Pi| = 5029,
|Ni| = 2683875
(pdal pipeline filters.litree Debug)            Max HAG value of 23.4901
(pdal pipeline filters.litree Debug) Classifying points for tree 2
(|Ui| = 2683875)
(pdal pipeline filters.litree Debug)                    |Pi| = 1840,
|Ni| = 2682035
(pdal pipeline filters.litree Debug)            Max HAG value of 23.3648
(pdal pipeline filters.litree Debug) Classifying points for tree 3
(|Ui| = 2682035)
(pdal pipeline filters.litree Debug)                    |Pi| = 3849,
|Ni| = 2678186
(pdal pipeline filters.litree Debug)            Max HAG value of 23.3035
(pdal pipeline filters.litree Debug) Classifying points for tree 4
(|Ui| = 2678186)

So we’re around ~2.7M unclassified points and progressing very slowly.

*Pipeline*

{
  "pipeline": [
    { "type": "readers.las", "filename":
"/home/adminis/Downloads/46DN2_12_segmented_cartolite_export_csf_24_9.laz"
},
    { "type": "filters.hag_delaunay" },
    { "type": "filters.sort", "dimension": "HeightAboveGround",
"order": "DESC" },
    { "type": "filters.litree", "min_points": 10, "min_height": 2.0,
"radius": 50.0 },
    { "type": "writers.las", "filename":
"/home/adminis/Downloads/46DN2_12_segmented_cartolite_export_csf_24_9_litree.laz",
"compression": "true", "minor_version": "1.4", "extra_dims": "all" }
  ]
}

*What I’ve read / expectations*
I saw in this GitHub comment that LiTree can finish “in a couple minutes”
on some datasets:
https://github.com/PDAL/PDAL/issues/3518#issuecomment-898709536

In my case, it’s an order of magnitude slower.

*My question*
Does anyone have suggestions on how to make filters.litree run faster on
multi-million-point datasets? Are there best practices around parameters or
workflow that significantly affect performance?

*Environment (let me know if more details help):*

   -

   *PDAL version:* 2.8.4
   -

   *Install:* conda env
   -

   *OS:* Ubuntu 24.04
   -

   *Input:* ~2.7M points, LAZ

Thanks a lot for any tips!

P.S. you can find the file here
<https://drive.google.com/file/d/1R-SZ7QdTff9gHOf0bxtuB0GHA3C7MTH_/view?usp=drive_link>
.

—
Antonis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pdal/attachments/20250924/aab08c53/attachment.htm>


More information about the pdal mailing list