Towards Large-Scale TreeQSM Analysis: Overcoming Computational Bottlenecks

Last modified date

Last update: 2026-08-26

Working with high density point clouds of trees you quickly realize that you want to use quantitative structure models (QSM) to extract higher dimensional individual tree information from your 3D data. Basically there is no other technique to really describe the internal structural information in fully developed 3D point clouds of tree objects. Deep learning networks can be used to just learn the structural properties of your trees. However this is mainly research so far –  may be soon possible but you need the species specific training data for that – so right now the deep learning route is mainly used for point cloud segmentation into individual tree objects.

When it comes to QSMs that do cylinder fitting there is hardly much choice – the best concepts are:

  • TreeQSM:  
    • Raumonen, P., Kaasalainen, M., Åkerblom, M., Kaartinen, H., Vastaranta, M., Holopainen, M., Disney, M. & Lewis, P. (2013). Comprehensive quantitative tree models from terrestrial laser scanner data. Remote Sensing, 5(2), 491–520,
    • Raumonen, P. et al. (2013). Fast automatic method for constructing topologically and geometrically precise tree models from TLS data. Proceedings FSPM Conference,
  • SimpleTree:
    • Hackenberg, J.; Spiecker, H.; Calders, K.; Disney, M.; Raumonen, P. SimpleTree —An Efficient Open Source Tool to Build Tree Models from TLS Clouds. Forests 2015, 6, 4245-4294. https://doi.org/10.3390/f6114245
  • AdQSM:
    • Fan, G.; Nan, L.; Dong, Y.; Su, X.; Chen, F. AdQSM: A New Method for Estimating Above-Ground Biomass from TLS Point Clouds. Remote Sens. 2020, 12, 3089. https://doi.org/10.3390/rs12183089
  • 3DForest: https://github.com/VUKOZ-OEL/3d-forest (original website seems to be offline as of June 2026).

Voxel based models quantify volume, crown density, occupancy and gap fraction: f.e in VoxR and AMAPVox: Vincent, G. et al. (2017). Theoretical and practical advances in terrestrial LiDAR voxelisation.

Probably the most complex models are those that use functional properties – Functional-Structural Plant Models (FSPM). Examples are:

  • LIGNUM, J. Perttunen, R. Sievänen, E. Nikinmaa, H. Salminen, H. Saarenmaa, and J. Väkevä. 1996.LIGNUM: a tree model based on simple structural units. Annals of Botany, volume 77, number 1, pages 87-98. 
  • GroIMP: https://gitlab.com/grogra/groimp, Kurth, W. et al. (2008). GroIMP and XL: A platform for functional-structural plant modelling,
  • OpenAlea: https://github.com/openalea (Pradal, C. et al. (2008). OpenAlea: A visual programming and component-based software platform.)

For tree segmentation in Park3D we went the voxel/Djikstra route, the concept is comparably easy to implement with available libraries (although the sheer amount of points from L2 flight campaigns was challenging – tiling and pre-splitting needed. The bottom-up segmentation can be controlled nicely with a set of variables in a transparent form and is based on well documented libraries. Approach documentation is somewhat documented here: https://jenacopterlabs.de/?p=2190 .

For Quantitative Structure Modelling in Park3D we are going the TreeQSM route. It is fully scriptable, can be easily used in a multi core environments and is proven and well understood concept. TreeQSM (Raumonen et al. 2013) runs with MATLAB libraries only. Since it has no GPU support – you are basically fully depending on parallel multi core processing. Something that nicely fits into the HPC environments. The MATLAB license support by FSU Jena even on a HPC system allows applying a high number of parallel workers. The problematic aspect of TreeQSM is that it was designed for TLS data in mind rather than for UAV based LiDAR. Using UAV LiDAR data some parts of the stem and branch structure are not fully described by the point coverage. This can create phantom branch/stem diameters that are hard to control and these distortions can modify the overall structural analysis. For this study the modeled stem diameters were tested for outliers and very high radius values > 0.75 m where removed and replace by the median diameter value of the k-NN (k=5) diameters of the same stem if available. To account for forking stems and fused dense tree stem clusters a ring fit test was implemented that checks the underlying base stem and if it is the origin of both stems or if both stems have different base stems a merge and split decision is executed. The approach also tests for automatic DBSCAN-chaining of stems that are too close but this cannot be fully avoided.

Also implemented was a filtering concept that removes TreeQSM tube models that do not meet certain criteria in branching dimension, height, diameter, symmetry and volume.

Multiple instance runs of TreeQSM showed that about 12-18 runs are needed to find the best fitting model with DJI L2 data. The resulting branch diameter was pruned at 5 cm to avoid erratic twig shapes. More detailed branch and twig descriptions are not reliable with L2 data and cannot be described reliably with rTwigs. The workflow is non-deterministic since different runs always generate slightly different results. Overall the quality of the fit (cylinder to points) and the amount of point coverage are measures that can be used to quality-flag the model. Additionally also number of points per tree is detected, and a maximum DBH is set. Some tree stems have strong ivy coverage. The workflow flags these trees as ivy-covered using the point Hue/Sat/Intensity values in leaf-off data and indicates that DBH values might be unreliable (strongly overestimated). With L2 data unfortunately fine twig structures sometimes create negative cylinder diameters. This is avoided with the 5 cm pruning.  This is clearly a sensor specific problem (low precision of the Zenmuse L2 that in general generates approximately an 7 cm noise-floor). rTwig is pretty useless with Zenmuse L2 data – the accuracy and precision of the L2 is just not there – small twigs are not modeled by the L2 data so searching for these and fitting mini cylinders is a useless effort here – testing also resolved that rTwig only complicates the tree topology with impossible connections and does not help describing the outer tree structure. With DBH measurements the L2 data clearly shows that the stem diameter is underestimated.

Fig.: TreeQSM model converted to PLY format and visualization of branch order (Park Sanssouci, Park3D Project).

The overall procedure can be easily parallelized and spread over multiple CPU cores – every tree is handled by one core. So the computational problem is just to have enough cores and RAM to work on multiple trees at the same time. This is easily handled in a HPC environment. The SLURM wrapper that was designed just ignites lots of parallel instances of the MATLAB TreeQSM process and writes the results from these processes back to disc. The test run originally started with 1500 trees but eventually and after filtering we have to move to approx. 50 000 trees. Clearly this cannot be done on a workstation with 20-40 cores. The processing was scaled to the DRACO HPC environment of the Friedrich Schiller University Jena with 800 cores initially.

Validation of TreeQSM results in general is difficult without a reference TLS dataset. However some plausibility tests are possible: information from least-squares-cylinder fitting is usable, also the number of k realizations of different patch diameters in TreeQSM is usable, SurfCov and Taper-plausibility (local taper changes strongly from neighboring taper).

 

Fig.: Branching structure: number of cylinders per branch order from TreeQSM individual tree modeling – spatially joined with the tree cadastre tree species data from SPSG for the park Sanssouci – the 10 most dominant species.

mtk, Sören

 

 

Sören Hese