Project

General

Profile

CompuTree QSM Advanced for plot not working with certain trees

Added by Sharp Iain 6 months ago

Hi there,

I am working with the Diablo-release of Computree and have managed to get the QSM for multiple trees, but for some reason there are three trees specifically that will not execute.

These are individual trees, that have been cleaned using both RiScan and CloudCompare, therefore I only use the following steps:

1) Load tree
2) Splits cloud by vertical cut
3) Classify ground pts
4) Smooth extraction of a point slice parallel to the DTM
5) An euclidean clustering operation. Produces sub clouds
6) Filter clusters by points numbers (I was getting point clusters within the tree, separate from the tree itself. )
7) Segmentation into tree clouds
8) QSM Spherefollowing - adv for plot
9) QSM Spherefollowing - detects and corrects using growth_volume
10) Export

Now I have tried them using the GUI, and I have also tried them in the .batch format. All I receive when I use the .batch format is the following error:
” F:\Costa Rica 2017\Ground LiDAR Group Material\05 - Step_4 QSM Outputs\UofA QSM batch>CompuTreeBatch.exe -script UofA_L4.xsct2 -startSteps
QPixmap::scaleHeight: Pixmap is a null pixmap
QPixmap::scaleHeight: Pixmap is a null pixmap
QPixmap::scaleHeight: Pixmap is a null pixmap
QPixmap::scaleHeight: Pixmap is a null pixmap
QPixmap::scaleHeight: Pixmap is a null pixmap
1853699
asd 1
01

F:\Costa Rica 2017\Ground LiDAR Group Material\05 - Step_4 QSM Outputs\UofA QSM batch>copy log_onf.log UofA_L4.log
The system cannot find the file specified.”

Is there another way that I could try and process these point clouds? I have attached them here for your convenience if you want to look at them. Thank you for your time and help!

Regards,
Iain Sharp

L4.txt (78.1 MB) L4.txt
L2.txt (75.9 MB) L2.txt
L7.txt (66.8 MB) L7.txt

Replies (7)

RE: CompuTree QSM Advanced for plot not working with certain trees - Added by Meissner Tobias 6 months ago

Hi Ian,

since you already have an isolated tree, I think you only have to run 3) Classify ground points - and then the QSM Sphere-following -adv for plot .
I not sure what you’re trying to accomplish with all the steps in between. At least number 7) Segmentation into tree clouds is obsolete because you already have a tree ^^. Or am I missing something?

Using your provided cloud L2 I came up with this script.

- center point cloud (simple tree can not do its stuff when, to quote Jan, the “numbers are to large”
- Split the cloud by a vertical cut (I used a value of 0.20 to segment the trunk from the ground)
- Classify ground points with following configuration (from above: 50 cm, 32 cm, 200 pts/m2 and 3 Cases). I selected the “cloud lower part” as input for this plugin
- QSM Sphere-following for plot

and then I executed the script.

Does this solve your problem?

Best Tobias

RE: CompuTree QSM Advanced for plot not working with certain trees - Added by Hackenberg Jan 6 months ago

Hi

in respect to:
- center point cloud (simple tree can not do its stuff when, to quote Jan, the “numbers are to large”
  • I opened L4.txt and those numbers seem to be small enough. I observerd numbers (which are stored as floats, not doubles) larger than 100.xxx start to cause issues. Nevertheless it is a good approach to still use this step to be protected against that behaviour.
  • Your cloud L4 has an empty line at the end. Remove this in a text editor, might also cause some problems (or not, but that is what I saw as a potential error source).
  • You can always run “statistical outlier filter” before modelling. You can set number of neighbors as 2 and give a really large number as standard deviation multiplier. That will remove isolated points. You can do a visual pre check with computree or Cloudcompare for such points by visualizing the bounding box of the cloud. If this is not too large, you do not have outliers which are hundred or even more points away from your cloud. One iteration should be fast of that filter.
  • As Tobias answer seems to work: the classify ground points will most likely assure a clean vertical cut at the “root” (0.2m above the ground or in that case even the 50cm, which can be lowered). QSM modelling needs to have an approximated vertical cut at ground. If this is(was the issue with Tobias answer), there is also a vertical cut tool in SimpleTree filters. It will search if no DTM included for the lowest z coordinate and just cut out all points in a user given height. Might be worth trying out, as it only has one parameter and simplifies your script.
  • You used two different tools, CC and RiScan. Maybe not always in the same temporal order? Please open and save your problematic clouds with both of them again. Save with tool a, repeat your batch script and then do with tool b if a fails. Import and export can be a problem, see the potential error caused by the empty line I wrote about.

Thats all I can add by just seeing numbers and topic information, I do not have visualizer installed. Please answer shortly if either none answer helped or which answer. A final post by the topic creator helps me to continue support this forum, as only then I can know which answer was correct and which incorrect.

RE: CompuTree QSM Advanced for plot not working with certain trees - Added by Hackenberg Jan 6 months ago

I opened in my Simpleforest plugin which is under development and saw you have definitely ground included. While there might be a second issue as well, this is definitively one. Execute simpleTree step “Splits the cloud by a vertical cut” with height 0.2m in all cases. You will loose though the first 20 cm of the tree, but no ground allowed for SimpleTree.
You can use “VoxelGrid filter” to downscale with cellsize 0.01 m as well, to save a lot of runtime.

Your cloud look amazingly well.

RE: CompuTree QSM Advanced for plot not working with certain trees - Added by Hackenberg Jan 6 months ago

I opened in my Simpleforest plugin which is under development and saw you have definitely ground included. While there might be a second issue as well, this is definitively one. Execute simpleTree step “Splits the cloud by a vertical cut” with height 0.2m in all cases. You will loose though the first 20 cm of the tree, but no ground allowed for SimpleTree.
You can use “VoxelGrid filter” to downscale with cellsize 0.01 m as well, to save a lot of runtime.

Your cloud look amazingly well.

RE: CompuTree QSM Advanced for plot not working with certain trees - Added by Hackenberg Jan 6 months ago

I opened in my Simpleforest plugin which is under development and saw you have definitely ground included. While there might be a second issue as well, this is definitively one. Execute simpleTree step “Splits the cloud by a vertical cut” with height 0.2m in all cases. You will loose though the first 20 cm of the tree, but no ground allowed for SimpleTree.
You can use “VoxelGrid filter” to downscale with cellsize 0.01 m as well, to save a lot of runtime.

Your cloud look amazingly well.

RE: CompuTree QSM Advanced for plot not working with certain trees - Added by Sharp Iain 6 months ago

Thank you Tobias and Jan for your answers!

I managed to get the trees working, I left the processing for a couple of days and it executed, but if I have these problems in the future I will come back to look at this for advice. Also I am starting another batch and will try and simplify the script as per Tobias’s recommendations.

Thank you Jan, I try and make my trees as complete as possible.

Cheers,
Iain Sharp

RE: CompuTree QSM Advanced for plot not working with certain trees - Added by Hackenberg Jan 6 months ago

Hi

glad the modelling did work in the end. If I understand your answer correctly, it was just a runtime issue, cause you got QSMs from the three clouds in the end. I have to say, I tried to model L4 with my SimpleForest plugin under development and simply broke the modelling after ~12 hours. That tree is not presented by that many points. I modelled larger clouds in shorter time. The issue here is the complexity of tree architecture. Your tree has so many twigs. No visible occlusion. That means that each twig is processed by the main Spherefollowing routine of SimpleTree. That main routine with its parameter search is what costs most runtime. And the number of cylinders found by the main routine increases again the runtime. As twig cylinders are smaller than stem cylinders, there is even more cylinders found. So I simply assume, the good cloud quality (no occlusion) combined with complex crown results in QMSs with abnormal number of cylinders. You could help confirming it by posting the number of cylinders found by your successfuly run. You can simply count the lines in
the detail file with a text editor, thats the number of cylinders.

Fuirthermore I consider it unlikely that there is:
  • an endless loop possibility where algorithm gets stuck
  • a dead lock causing the same problem by multithreading

So by my assumption you should always give SimpleTree more time. It will most likely finish the computation. The QSM with most cylinders modelled during Diabolo project had 10k cylinders and took ~3 hours, so if your tree has more than 100k cylinders in its model, than you are already over a day of computation. Try to start modeling with planning Friday evening before you leave to weekend. That gives you 60 hours til Monday morning .

Hope that helps for future decisions,

Jan

    (1-7/7)